在我的PDO查询中重复


duplicate on my PDO query

这是我的代码先生:

<?php
    session_start();
    include 'include/db_config.php';
    $result = $dbs->prepare("SELECT * FROM service_info ORDER BY id DESC");
    /*$result->bindParam(':id', $_SESSION['id']);*/
    $result->execute();
    for($i=0; $row = $result->fetch(); $i++){
    $result2 = $dbs->prepare("SELECT *FROM customer_info ORDER BY id DESC");
    $result2->execute();
    for($j=0; $row2 = $result2->fetch();$j++){

?>

<tr class="record">
    <td><?php echo $row2['firstname'];?></td>
    <td><?php echo $row['no_guest']; ?></td>
    <td><?php echo $row['type_service']; ?></td>
    <td><?php echo $row['datepicker']; ?></td>
    <td><?php echo $row['t_time']; ?></td>
    <td><a href="delete.php?id=<?php echo $row['id']; ?>"> delete </a></td>
</tr>
<?php
    }
}
?>

我没有使用LEFT JOIN来显示来自两个表的数据。我只想用我自己的方式去做。但我的问题是它重复了我的数据。在我插入第二个查询之前,它只有2个数据,现在已经有4个了。我只是搞不清楚重复发生在哪里。

请有人帮我。提前感谢。

您在第一个for内部的第二个for中显示数据。因此,您可以得到customer_info表长度*service_info长度结果的结果计数。您应该将信息保存在数组中,然后只使用一个for周期。例如:

    <?php
        session_start();
        include 'include/db_config.php';
        $services = array();
        $customers = array();
        $result = $dbs->prepare("SELECT * FROM service_info ORDER BY id DESC");
        /*$result->bindParam(':id', $_SESSION['id']);*/
        $result->execute();
        for($i=0; $row = $result->fetch(); $i++){
            $services[] = $row;
        }
        $result2 = $dbs->prepare("SELECT *FROM customer_info ORDER BY id DESC");
        $result2->execute();
        for($j=0; $row2 = $result2->fetch();$j++){
          $customers[] = $row2;
        }
        foreach($services as $key => $service) {
    ?>

    <tr class="record">
        <td><?php echo $customers[$key]['firstname'];?></td>
        <td><?php echo $service['no_guest']; ?></td>
        <td><?php echo $service['type_service']; ?></td>
        <td><?php echo $service['datepicker']; ?></td>
        <td><?php echo $service['t_time']; ?></td>
        <td><a href="delete.php?id=<?php echo $service['id']; ?>"> delete </a></td>
    </tr>
    <?php
        }
    ?>

顺便说一句,我建议你使用不同的方法,比如joins