2016-10-20 8 views
0

これは私のコードです。私は知っている、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

このようなループ内でクエリを実行しないと、より効率的なクエリが1つだけ必要です。 – nogad

+0

'$ query1'とは何か、それは' $ query'とどのようにリンクしていますか? –

+1

あなたが選択した最後の値しか得られないと思いますか?あなたが最初にスナップされた変数を上書きするので、あなたは本当に何もしません(少なくともあなたが示したコードからではありません)。 – Qirel

答えて

0

ループは毎回値を上書きしているようです。あなたが取得した値を使って何をやっているところ私には、例えば、したがって、表示されません。

$user=$row['username']; 

は3回実行することができるが、各時間は、以前の値を上書きします。それはあなたに最後に選ばれた価値を与えてくれるのですよね?その場合は、$userを3回設定しているため、最後の1回後に何もしないためです。

+0

$ valを取得した後、私は別のデータベースから$ userのような変数を選択するためにそれを使用しています。しかし、これらの変数をエコーするとき、私はただ一つの値を得ます.. foreachは私が選択したすべてのチェックボックスに対して実行していません..多くの代わりに1つの$ valを取得する –

関連する問題