为什么我的SQL查询在PHP中显示时会有所不同?
当我在phpmyadmin中执行SQL时,它会给出正确的结果,因为您可以看到表第一列的两个order_id是不同的: 但是,当我将SQL调用到PHP中时,它会以不同的方式显示,显示顺序为ID 99的两行: 这是SQL: 选择o.order\u id、o.farm\u id、o.user\u id、o.created、u.first\u name、u.姓氏、u.email、, u、 电话号码,ua.用户id,ua.街道,ua.镇,ua.县,ua.邮编,bc.* 从命令 左加入用户地址 在ua.user\u id=o.user\u id上 左加入用户u 在ua.user_id=u.id上 左连接篮 在ua.user\u id=bc.user\u id上 其中o.farm_id=10 和bc.farm\u id=o.farm\u id 按订单编号分组 按bc.ORDER\U id ASC订购 以下是我如何将SQL调用到PHP中:为什么我的SQL查询在PHP中显示时会有所不同?,php,sql,Php,Sql,当我在phpmyadmin中执行SQL时,它会给出正确的结果,因为您可以看到表第一列的两个order_id是不同的: 但是,当我将SQL调用到PHP中时,它会以不同的方式显示,显示顺序为ID 99的两行: 这是SQL: 选择o.order\u id、o.farm\u id、o.user\u id、o.created、u.first\u name、u.姓氏、u.email、, u、 电话号码,ua.用户id,ua.街道,ua.镇,ua.县,ua.邮编,bc.* 从命令 左加入用户地址 在ua.us
<?php $query = "<the query>";
$data_set = mysqli_query($GLOBALS['connection'], $query);
confirm_query2($data_set, $query);
while ($row = mysqli_fetch_array($data_set)) { ?>
<tr>
<!-- Order ID -->
<td class='orders-table' style='font-size:16px;font-weight:bold;'>
<?php echo "<span><a href='{$view_order}.php?id=" . $row['order_id'] . "'>#" . $row['order_id'] . "</a></span>"; ?>
</td>
<!-- Name -->
<td class='orders-table'>
<?php echo "<span>" . $row['first_name'] . " " . $row['surname'] . "</span>"; ?>
</td>
<!-- Email -->
<td class='orders-table' style='word-wrap:break-word;'>
<?php echo "<span>" . $row['email'] . "</span>"; ?>
</td>
<!-- Telephone no. -->
<td class='orders-table' style='width:0px;'>
<?php $telephone_no = substr_replace($row['telephone_no'], '-<br />', 4, 0); ?>
<?php echo "<span>0" . str_replace("+44", "", $telephone_no) . "</span>"; ?>
</td>
<!-- Street -->
<td class='orders-table' style='text-align:left;'>
<?php echo "<span>" . $row['street'] . ",</span>"; ?><br />
<?php echo "<span>" . $row['town'] . ",</span>"; ?><br />
<?php echo "<span>" . $row['county'] . ",</span>"; ?><br />
<?php echo "<span>" . $row['postcode'] . "</span>"; ?>
</td>
<!-- Total -->
<td class='orders-table'>
<?php echo "<span>" . "£" . sprintf("%0.2f", $row['produce_total']) . "</a></span>"; ?>
</td>
<!-- Items -->
<td class='orders-table' style='width:0px;'>
<?php echo "<span>" . $row['total_items'] . "</a></span>"; ?>
</td>
<!-- Order created -->
<td class='orders-table'>
<?php echo "<span>"; if (date('Y-m-d', strtotime($row['created'])) == date('Y-m-d')) { echo "Today<br />" . date('(H:i)', strtotime($row['created'])); } else { echo date('d/m/y (H:i)', strtotime($row['created'])); } echo "</span>"; ?>
</td>
<!-- Processed -->
<?php if ($btn) { ?>
<td class='orders-table' style='width:0px;'>
<input type="submit" name="submit<?php echo $row['order_id']; ?>" value='Process' onclick="return confirm('Do you want to process this order?');" style='margin-left:1px;font-weight:bold;color:green;' />
</td>
<?php } ?>
<?php } ?>
您应该真正地展示代码,因为这就是生成输出的原因,您所说的输出是错误的。这也可能有助于显示confirm_query2函数的定义。好的,我会这样做,如果不进一步深入了解它,我不确定它是否会导致您的问题,但是您在这里错误地使用了GROUP BY。MySQL可以让您不受影响,但从技术上讲,每个selected列都应该是聚合的SUM、COUNT等,或者列在GROUPBY子句中。不这样做可能会导致意外的结果。另外,除了orders之外,在任何表中都有order\u id列吗?好的,那将是一个问题。您选择相同的列名两次。那么$row['order_id']应该知道使用哪一个吗?我个人强烈建议不要在选择列表中使用*。相反,要养成只选择实际需要的列的习惯,并在必要时对它们进行别名。即使如此,您仍然使用bc.*,这将包括重复的列。另外,请,请只张贴您的确切代码。发布任何其他内容都会浪费您和我们的时间。