返回重复结果的PHP和SQL

返回重复结果的PHP和SQL,php,sql,phpmyadmin,duplicates,Php,Sql,Phpmyadmin,Duplicates,我正在尝试创建订单历史记录页面。一种SQL语句,根据orderdetails tbl中的order_ID查找所有应用程序。下面是SQL语句 SELECT * FROM applications_tbl INNER JOIN orderdetails_tbl ON orderdetails_tbl.app_ID = applications_tbl.app_ID WHERE orderdetails_tbl.order_ID = $orderID 使用此PHP显示结果 $result = mys

我正在尝试创建订单历史记录页面。一种SQL语句,根据orderdetails tbl中的order_ID查找所有应用程序。下面是SQL语句

SELECT * FROM applications_tbl INNER JOIN orderdetails_tbl ON orderdetails_tbl.app_ID = applications_tbl.app_ID WHERE orderdetails_tbl.order_ID = $orderID
使用此PHP显示结果

$result = mysql_query("SELECT * 
FROM applications_tbl
INNER JOIN orderdetails_tbl ON orderdetails_tbl.app_ID = applications_tbl.app_ID WHERE orderdetails_tbl.order_ID = ".$order_ID."");
$row = mysql_fetch_assoc($result);
echo "<table>";
do { ?>

    <tr style="background-color:#fff">
    <td> <img src="getimage.php?ID=<?php echo $row['app_ID']; ?>" width="100" height="100" alt="IMAGE" /></td>
           <td width="20%"><?php echo $row['app_name']; ?></td>
           <td><?php echo $row['app_desc']; ?></td>
           <td width="15%"><?php echo $row['app_cost']; ?></td>
     </tr>    
     <?php  
 } while ($row = mysql_fetch_assoc($result)); 
$result=mysql\u查询(“选择*
来自应用程序
内部加入orderdetails\u tbl ON orderdetails\u tbl.app\u ID=应用程序\u tbl.app\u ID,其中orderdetails\u tbl.order\u ID=“.$order\u ID.”;
$row=mysql\u fetch\u assoc($result);
回声“;
你知道吗
“width=“100”height=“100”alt=“IMAGE”/
分组使用

$result = mysql_query("SELECT * FROM applications_tbl
INNER JOIN orderdetails_tbl ON orderdetails_tbl.app_ID = applications_tbl.app_ID 
WHERE orderdetails_tbl.order_ID = ".$order_ID." GROUP BY app_ID");

技巧是使用alias使sql语句更可读,如下所示:

$result = mysql_query("SELECT * FROM applications_tbl at INNER JOIN orderdetails_tbl od ON od.app_ID = at.app_ID WHERE od.order_ID = ".$order_ID);
但要回答您的问题,您可以在一个字段上使用DISTINCT,列出您希望包含在记录集中的字段,或者在SQL语句末尾添加GROUP BY语句

不同:(示例)

分组依据(示例)


$order\u ID的实际值是多少?(我问这个问题是因为你说你有相同的查询,在浏览器中查看时只会得到重复的查询。这看起来很奇怪)

你能给我们看一下重复的记录吗?试试
mysql\u fetch\u row
orderdetails\u tbl
听起来像是保存了订单的行项目。你应该有另一个
order
表格作为订单的标题。否则,你可以只使用
选择DISTINCT
。你不应该在表格上使用
SELECT*
。Spec通知所需的字段,然后还添加一条不同的语句
$result = mysql_query("SELECT DISTINCT at.id, od.app_ID FROM applications_tbl at INNER JOIN orderdetails_tbl od ON od.app_ID = at.app_ID WHERE od.order_ID = ".$order_ID);
$result = mysql_query("SELECT * FROM applications_tbl at INNER JOIN orderdetails_tbl od ON od.app_ID = at.app_ID WHERE od.order_ID = ".$order_ID . " GROUP BY at.id");