繁体   English   中英

While循环对于每个php仅工作一次

[英]While loop working only once inside for each php

这是我的代码。 我知道, 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不从所有选定的复选框中获取值。 请帮忙。 提前致谢。 :)

在我看来,您的while循环每次都会覆盖这些值。 我看不到您使用检索到的值在做什么,因此,例如:

$user=$row['username'];

可能会执行3次,但每次都会覆盖先前的值。 它总是给您最后选择的值,对吧? 如果是这样,那是因为您要设置$user三次,只有在最后一个之后,您才能对其进行任何操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM