2017-03-11 8 views
-1

Ich habe ein Problem beim Erhalten mehrerer Werte, die ich es aus Db und Post entladen, um alle Werte mit Hilfe von While-Schleife, sondern nur den ersten Wert in Array angezeigt wird. hier ist mein Skript:erhalten mehrere Werte im Array während Schleife

submit.php

$res=mysql_query(select number from phonebook); 
while ($row = mysql_fetch_array($res)) 
{ 
$number = $row['number']; 
} 
<form method="post" action="send.php"> 
<input type="checkbox" name="number" value="<?php echo $number ?>"> 
<textarea name="message"></textarea> 
<input type="submit" name="submit" value="submit"> 

send.php

$message = $_POST['message']; 
$number = $_POST['number']; 
exec('echo '.$message.' | mySmsGw --sendsms '.$number); 

im Versuch Nachricht in mehreren Telefonnummern zu senden und es mit while-Schleife immer, aber immer noch Erhalte nur den ersten Wert in der Zahlenspalte.

dank

Antwort

0

Wenn Sie alle Zahlen:

$number[] = $row['number']; 
+0

ja, es wird funktionieren, wenn ich es innerhalb Echo while-Schleife, aber wenn es auf Post Form echo nur er mir die erste Zahl in Nummer Spalte gibt –

+0

So Schleife sie es nicht tun die Formulareingaben. – AbraCadaver

0

Dies ist wegen der folgenden Zeile in der Schleife:

$number = $row['number']; 

auf jeder Zahl neue Iteration $ Wert ist über geschrieben. So ändern Sie es zu:

$number[] = $row['number']; 

So dass es mehrere Zahlen halten kann.

+0

ja es wird funktionieren, wenn ich es innerhalb While-Schleife Echo, aber wenn es auf Post-Formular echo es gibt mir nur die erste Nummer in der Spalte –

+0

No Schleife so die Formulareingaben. – AbraCadaver

0
$res = mysql_query("select number from phonebook"); 
$number = []; 
while ($row = mysql_fetch_array($res)) { 
    $number[] = $row['number']; 
} 

<form method="post" action="send.php"> 
<?php foreach ($number as $num) { ?> 
<input type="checkbox" name="number[]" value="<?php echo $num; ?>"> 
<?php } ?> 
<textarea name="message"></textarea> 
<input type="submit" name="submit" value="submit"> 

POST:

$message = $_POST['message']; 
$numbers = $_POST['number']; 

foreach ($numbers as $number) { 
exec('echo '.$message.' | mySmsGw --sendsms '.$number); 
} 
+0

Warum Schleife zweimal? Und fügen Sie eine Erklärung hinzu und ich werde +1 – AbraCadaver

+0

Es ist nicht notwendig, zweimal zu wiederholen, aber ich behalte nur die ursprüngliche Struktur. Sie können das Kontrollkästchen einfach in die While-Schleife einfügen. –

Verwandte Themen