为什么我的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

当我在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中:

<?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.*,这将包括重复的列。另外,请,请只张贴您的确切代码。发布任何其他内容都会浪费您和我们的时间。