【发布时间】:2021-10-01 04:06:35
【问题描述】:
我有一个 if 语句,如果我的表中存在某种条件,它会动态显示 html,其中包含数据库中存在的每一行的数据,我正在使用 foreach 循环,但它一直显示在较少的行上比实际表中的内容,如果它有三行,它将显示两行,如果只有一个它不显示任何内容,它会通过 if 语句,因为如果它不显示错误消息,但在我的如果它只是显示一个空白页面,为什么会发生这种情况?
function show()
{
$stmt = $this->db->prepare("SELECT offered_rides.*, reg.*
FROM offered_rides
JOIN reg ON offered_rides.phone = reg.phone where
offered_rides.date = :date AND offered_rides.seats >= :seats AND offered_rides.start = :start AND offered_rides.finish = :finish ");
$stmt->bindParam(':date',$this->date);
$stmt->bindParam(':seats',$this->seats);
$stmt->bindParam(':start',$this->from);
$stmt->bindParam(':finish',$this->to);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if($row)
{
foreach($stmt as $row):
?>
<form action="Update.php" method="POST">
<div class="a">
<div class="fnamelname">
<p style="display:inline;"> <?php echo $row["fname"];?> </p>
<p style="display:inline;"> <?php echo $row["lname"];?> </p>
</div>
</div>
//i need to store these to use them later
<input type = "hidden" name = "phone-D" value = "<?=$row['phone'] ?>" />
<input type = "hidden" name = "time" value = "<?= $row['time'] ?>" />
<input type = "hidden" name = "seats" value = "<?= $row['seats'] - $this->seats?>" />
</form>
<?php endforeach;
}
【问题讨论】: