这是我的代码先生:
<?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