【发布时间】:2018-08-21 10:54:03
【问题描述】:
为什么我的 foreach 只显示 1 个结果,为什么不显示两个结果,因为它清楚地显示在我的数据库中有 2 个 Com_Id 为 1 的结果,但它仍然只给我 1 个结果。这就是我的数据库的样子
这是我得到的结果
$id = $_GET['view'];
我的代码:
<?php
$sql = "SELECT * FROM IA_Monitor WHERE Com_ID = :id";
$query = $conn->prepare($sql);
$query->execute(array(':id' => $id));
while($row = $query->fetch(PDO::FETCH_ASSOC)){
$mon_comid = $row['Com_ID'];
$mon_barcode[0] = $row['Barcode'];
$mon_merk = $row['Merk'];
$mon_type = $row['Type'];
$mon_inch = $row['Inch'];
$mon_a_dat = $row['Aanschaf_dat'];
$mon_a_prijs = $row['Aanschaf_waarde'];
}
$monnewDate = date("d-m-Y", strtotime($mon_a_dat));
if($id==$mon_comid){
foreach($mon_barcode as $key => $value){
?>
<title><?php echo $value; ?></title>
<table>
<tr><td>Monitorbarcode: </td><td><?php echo $value;?></td></tr>
<tr><td>Merk: </td><td><?php echo $mon_merk;?></td></tr>
<tr><td>Type: </td><td><?php echo $mon_type;?></td></tr>
<tr><td>Inch: </td><td><?php echo $mon_inch;?></td></tr>
<tr><td>Aanschaf datum: </td><td><?php echo $monnewDate;?></td></tr>
<tr><td>Aanschaf waarde: </td><td><?php echo "€".number_format((float)$mon_a_prijs, 2, '.', '')."";?></td></tr>
</table>
<?php
}}else{
echo "<i>Geen monitoren gevonden</i>";
}
?>
有谁知道它为什么不起作用,您能帮我理解并帮助我解决这个问题吗?
【问题讨论】:
-
你得到了所有的行,但你没有将它们添加到一个数组中,你一直用最后一条记录覆盖
$mon_*vars。 -
好吧,我明白你的意思了,让我先尝试自己修复它,否则我不会从中学到任何东西;)
-
当您使用它时,您可以删除
if($id==$mon_comid)语句,因为在这种情况下它是相当多余的。您仅使用Com_ID获取记录。 SQL 知道它在做什么。