これは私のコードです。私は知っている、while
ループは1回だけ動作します。しかし、foreach
は、1つの値を取得した後、ループしません。つまり、3つのチェックボックスを選択している場合です。 1つだけが値を渡します。whileループは各PHP用に一度だけ動作します
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のチェックボックスです。チェックボックスの数が固定されていない、それは以下query.Code依存foreachの選択されたすべてのチェックボックスの値をフェッチされていない理由だけで、複数のチェックボックス
{
<input type="checkbox" name="list[]" value="<?php echo $id; ?>
}
を得ることです。助けてください。前もって感謝します。 :)
このようなループ内でクエリを実行しないと、より効率的なクエリが1つだけ必要です。 – nogad
'$ query1'とは何か、それは' $ query'とどのようにリンクしていますか? –
あなたが選択した最後の値しか得られないと思いますか?あなたが最初にスナップされた変数を上書きするので、あなたは本当に何もしません(少なくともあなたが示したコードからではありません)。 – Qirel