我正在尝试根据订单ID选择用户从我的网站购买的所有产品。
$orderid = mysql_query("SELECT MAX(orders_id) FROM orders") or die(mysql_error());
$orderid = mysql_fetch_row($orderid);
$productinfo = mysql_query("SELECT products_model, products_name, products_price, products_quantity FROM orders_products WHERE orders_id=" . $orderid[0]);
$productinfo = mysql_fetch_row($productinfo);
echo $productinfo[0] . " | " . $productinfo[1] . " | $" . $productinfo[2] . " | " . $productinfo[3] . "<br><br>";
这将从数据库中提取一个产品,但如果客户订购了8个产品,我需要循环,直到选择了订单ID为$ orderid [0]的所有产品。最好的方法是什么?任何帮助表示赞赏!
答案 0 :(得分:1)
一些事情。
首先,这里的每个人都会告诉你使用mysqli或pdo作为mysql_query的替代品,因为它们更安全,实际上更容易维护和使用。
参见这篇文章:
http://www.pontikis.net/blog/how-to-use-php-improved-mysqli-extension-and-why-you-should
其次,您可以通过编写更有效的查询来轻松减少代码。
在这种情况下,您可能希望使用SQL JOIN。 (更多关于加入http://www.sitepoint.com/understanding-sql-joins-mysql-database/)
SELECT products_model, products_name, products_price, products_quantity
FROM orders_products as products
JOIN orders as orders on products.order_id = order.order_id
WHERE products.order_id = {whatever order id you are trying to find}
这将为您提供为每个订单ID订购的所有产品。
并使用while循环遍历查询中出现的所有结果