繁体   English   中英

从多行中选择某些列

[英]Select certain columns from multiple rows

我试图根据订单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] . "&nbsp;&nbsp;|&nbsp;&nbsp;" . $productinfo[1] . "&nbsp;&nbsp;|&nbsp;&nbsp;$" . $productinfo[2] . "&nbsp;&nbsp;|&nbsp;&nbsp;" . $productinfo[3] . "<br><br>";

这将从数据库中拉出一个产品,但是如果客户订购了8个项目,则我将需要循环此操作,直到选择了所有订单ID为$ orderid [0]的产品为止。 最好的方法是什么? 任何帮助表示赞赏!

一些东西。

首先,这里的每个人都会告诉您研究使用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循环遍历查询中的所有结果

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM