【发布时间】:2017-03-02 23:44:03
【问题描述】:
这是我的代码。我知道,while 循环只会工作一次。但是foreach 在获取一个值后不会循环,即如果我选择了 3 个复选框。只有一个会传递值。
if(!empty($_POST["list"]))
{
$connect = @mysql_connect("localhost","***","***") or die (" this error");
mysql_select_db("edu_info")or die ("database does not exist");
foreach($_POST["list"] as $list=> $val)
{
$query=mysql_query("select * from students where id='$val' limit 1");
while($row=mysql_fetch_assoc($query))
{
$user=$row['username'];
$number=$row['pphone'];
$name=$row['name'];
$pname=$row['pname'];
}
echo $user;
echo $number;
echo $name;
echo $pname;
}
}
这是我在 html 中的复选框。复选框的数量不固定,取决于查询。下面的代码只是获取多个复选框
{
<input type="checkbox" name="list[]" value="<?php echo $id; ?>
}
为什么 foreach 没有从所有选中的复选框中获取值。请帮忙。提前致谢。 :)
【问题讨论】:
-
不要在这样的循环中运行查询,您只需要一个更高效的查询
-
什么是
$query1以及它如何与$query关联? -
我猜它只获得您选择的最后一个值是否正确?因为您在第一次剪切时覆盖了变量 - 而您实际上并没有对它们做任何事情(至少不是从您显示的代码中)。
-
我正在使用 $query_1 获取多个复选框。我使用了 $id 并通过 foreach 获取了 $val。但问题是当我使用 $val 获取其他变量(如 $user)时,当我回显它们时.. 我只得到一个 $username、$number、$name 等。我不应该为每个 $val
标签: php html loops foreach while-loop