代码之家  ›  专栏  ›  技术社区  ›  Devner

php和mySQL:选择多本书并在下一个屏幕中显示它们的信息

  •  0
  • Devner  · 技术社区  · 16 年前

    1. 考虑有10本书(可能有更多,甚至100 +在一个屏幕上)。客户可以订购任意数量的书籍。在fontend中,每本书都表示为一行,书的详细信息按列排列。现在,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
      
    2. 现在,用户可以查看上面任意数量的书籍。单击“添加到购物车”按钮时,我希望下一个屏幕以上述格式显示所选书籍的详细信息。因此,例如,如果用户选择: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) )

    以便能够显示结果。我说得对吗?

    2 回复  |  直到 16 年前
        1
  •  0
  •   Ignacio Vazquez-Abrams    16 年前
    SELECT 
    (SELECT COUNT(*) FROM books_stock WHERE books_stock.book_id = books.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 IN (21, 23, 30)
    
        2
  •  0
  •   wasatz    16 年前

    我已经很久没有使用MySQL了,但在oracle中你可以取代你的????具有

    IN (1,2,3,4,5)
    

    我很确定这在MySQL中也会起作用。