Позвольте мне проиллюстрировать это на примере.
Учтите, что есть 10 книг (может быть больше, даже 100+ на одном экране). Клиент может заказать любое количество книг. В шрифте каждая книга представлена в строке, а детали книги расположены в столбцах. Теперь 10 книг (вместе с их деталями) показаны в 10 строках.
BOOK_NAME DESCRIPTION PRICE
B1 Book 1 10 Checkbox
B2 Book 2 20 Checkbox
B3 Book 3 30 Checkbox
B4 Book 4 40 Checkbox
...
B10 Book 10 100 Checkbox
------------------------------------------
Add to Cart button
Теперь пользователь может проверить любое количество книг выше. Когда нажата кнопка «Добавить в корзину», я бы хотел, чтобы на следующем экране отображались сведения о выбранных книгах в указанном выше формате. Так, например, если пользователь выбирает: B1, B3 и B10 и нажимает кнопку «Добавить в корзину», на следующем экране я хочу показать его следующим образом:
BOOK_NAME DESCRIPTION PRICE IN_STOCK
B1 Book 1 10 2
B3 Book 3 30 5
B10 Book 10 100 1
Я добавил столбец «На складе». В этом столбце указано количество каждой книги (в наличии).
У меня проблемы с моим текущим запросом, выполняющим описанные выше действия, поэтому было бы очень полезно, если бы кто-нибудь мог мне помочь с этим. Я указал части, где я испытываю больше всего проблем, разместив ????? там. Я пытаюсь сделать это наиболее эффективным способом и в одном запросе без необходимости выполнять запрос снова и снова (в цикле). (Обратите внимание, что в случае проверки 50 книг необходимо показать 50 строк книг с соответствующей информацией. Так что, надеюсь, это имеет смысл.)
Мой текущий запрос:
SELECT
(SELECT COUNT(*) FROM books_stock WHERE books_stock.book_id ????? ) AS books_in_stock,
books.book_id, books.description, books.book_price, books.book_name
FROM books
INNER JOIN books_stock ON books.book_id = books_stock.book_id
WHERE book_id ?????
Полагаю, что после выполнения запроса мне нужно будет сделать
while( $rows = mysql_fetch_array($result) )
, чтобы можно было показать результаты. Я прав?
Спасибо.