【发布时间】:2015-08-18 11:36:53
【问题描述】:
我创建了一个foreach 语句,它将访问 MySQL 数据库,并将在列表中显示数据库中每个人的用户名和 ID —— 没问题。每个人旁边的按钮都会显示 ID 号——那里没问题。但是,当我按下按钮时,它将返回最后一个人的值,在这种情况下是 30,而不是数字 1 或我按下的按钮的任何数字。
我认为这是因为在显示页面时,它会将 ID 分配给循环的每个传递的变量,因为它正在显示。
$ID 将设置为最后一个,因为在显示页面时,它会遍历列表中的每个人,然后在最后一个选项中结束,仅在显示页面时。因此,当我按下按钮时,$ID 当然会设置为 30,因为它必须计数到这个值才能看到它。这就是我遇到的问题。当我按下按钮时,我希望将 Session['id'] 设置为当时 $ID 设置的值,而不是页面完成显示后 $ID 设置的值。
<?php
include 'connect.php';
foreach($db->query("SELECT * FROM Staff") as $row) {
$ID = $row['id']
Echo $row['id'];
Echo $row['FirstName'];
Echo $row['LastName'];
?>
<button Class="link" id="OpenUp"><?php echo $id; $_SESSON['id'] = $id; ?></button>
<?php } ?>
【问题讨论】:
-
在 foreach 之前定义
$ID,现在$ID只存在于 foreach 范围内。而且$ID不等于$id。变量区分大小写。 -
你为什么要使用会话?按下按钮时会激活什么功能?
标签: php mysql loops variables foreach