Php 内部连接帮助和mysql表

Php 内部连接帮助和mysql表,php,mysql,sql,join,Php,Mysql,Sql,Join,我目前正试图用两个mysql表“order”和“order\u items”中的信息创建一个表,因为它们都共享order id 命令 订购商品 我想显示这样一个表,其中产品名称在同一行中,这可能需要一个循环 我想这样做与内部连接,因为它更标志着我所做的 这是我目前拥有的,但目前不起作用 $query = "SELECT order.date_bought, order.total_price, order_items.product_name FROM order INNER JOIN o

我目前正试图用两个mysql表“order”和“order\u items”中的信息创建一个表,因为它们都共享order id

命令

订购商品

我想显示这样一个表,其中产品名称在同一行中,这可能需要一个循环

我想这样做与内部连接,因为它更标志着我所做的

这是我目前拥有的,但目前不起作用

$query = "SELECT order.date_bought, order.total_price, order_items.product_name FROM order INNER JOIN order_items ON order.order_id = order_items.order_id WHERE order.student_id = $id ORDER BY order_id DESC";

$result = mysql_query($query);

$num = mysql_num_rows($result);

$i=0;

while($i < $num){
$date_bought = mysql_result($result,$i,"date_bought");

echo $date_bought;

}
$query=“从订单内部选择order.date\u bunded、order.total\u price、order\u items.product\u name加入订单上的订单\u items.order\u id=order\u items.order\u id,其中order.student\u id=$id order BY order\u id DESC”;
$result=mysql\u query($query);
$num=mysql\u num\u行($result);
$i=0;
而($i<$num){
$date_bunded=mysql_result($result,$i,“date_bunded”);
echo$date_购买;
}
错误:mysql_num_rows()要求参数1为资源,给定布尔值


但是我很确定它是因为查询

顺序
是一个保留字,请转义:

SELECT 
  o.order_id,
  o.date_bought, 
  o.total_price, 
  oi.product_name 
FROM `order` AS o
INNER JOIN order_items AS oi ON o.order_id = oi.order_id 
WHERE o.student_id = $id 
ORDER BY o.order_id DESC;
尽量避免使用这些名称


如果要在同一行中显示每个订单的产品名称,请使用
GROUP\u CONCAT
功能:

SELECT 
  o.order_id,
  o.date_bought, 
  o.total_price, 
  GROUP_CONCAT(oi.product_name SEPARATOR ' ') AS ProdcutNames
FROM `order` AS o
INNER JOIN order_items AS oi ON o.order_id = oi.order_id 
WHERE o.student_id = $id 
GROUP BY o.order_id,
         o.date_bought, 
         o.total_price
ORDER BY o.order_id DESC;

我看到你是mysql的初学者。试试看:

SELECT * FROM order o INNER JOIN order_items oi ON o.order_id = oi.order_id WHERE order.student_id = $id GROUP BY o.order_id ORDER BY o.order_id DESC 

“组”不会复制结果。

但是您的表都是一样的?!请更正订单项目结构。抱歉,图像错误。您可以尝试使用组\u concat()。唯一的问题是mysql的字符上限为1024左右。请适当注意您的问题,请更正问题中的order_items结构。它仍然会抛出错误。警告:mysql_num_rows()希望参数1是资源,布尔值,因为我的php可能是错误的?或者,我如何测试某个东西是否正在运行retrieved@user2146226请尝试获取SQL错误。您可以直接在MySQL中进行测试,也可以使用phpadmin.DONE进行测试。我必须确认$id,谢谢。atm它显示同一日期十亿次,所以我的循环是错误的等等,我会设法弄清楚如何将它显示在一张表中,否则我稍后会问一个新问题。谢谢你的帮助