2016-06-13 12 views
2

whileループで2つの<option>出力フォームデータベースが必要です。また、$_POST['']という形式の関数を受け取る必要がありますが、出力は<option>です。これらのコードから二重<option>は表示されません。私はここで何をしていますか?2つのhtml <option> PHPからの出力whileループが動作しません

$q6 = mysql_query("SELECT * FROM menu"); 
echo '<form action="" method="post">'.'Need To Change <select name="tobechanged">'; 
while ($row = mysql_fetch_array($q6)) { 
    $menu_name = $row['menu_name']; 
    echo '<option value="'.$menu_name.'">'.$menu_name.'</option>'; 

} 
while ($row = mysql_fetch_array($q6)) { 
    $menu_name2 = $row['menu_name']; 
    echo '<option value="'.$menu_name2.'">'.$menu_name2.'</option>'; 

} 

echo '</select><br> 
    <input type="submit" name="pchange_submit" value="Change it"> 
</form>'; 

if (isset($_POST['pchange_submit'])) { 
    echo $_POST['tobechanged']; 
} 
+0

'mysql_fetch'は、あなたの最初のループは、結果セット内のすべての行を使用するようにはfalseを返します(これ以上のレコード)をブール呼び出すフェッチするので、その後、あなたの第二のループが内蹴ることはありません、行を消費します。とにかくこれをやりたいのですが?たとえあなたがクエリを巻き戻したとしても、重複したオプションを出力しているだけで、無意味です。 –

+0

それから二重の返品を得るための解決策は何ですか? –

+1

1つのループを実行して、オプションの文字列を作成し、文字列を2度出力します。クエリ結果を巻き戻すことができます。 –

答えて

0
$q6 = mysql_query("SELECT * FROM menu"); 
echo '<form action="" method="post">'.'Need To Change <select name="tobechanged">'; 
while ($row = mysql_fetch_array($q6)) { 
    $menu_name = $row['menu_name']; 
    echo '<option value="'.$menu_name.'">'.$menu_name.'</option>'; 

} 

echo '</select><br> 
    <input type="submit" name="pchange_submit" value="Change it"> 
</form>'; 

if (isset($_POST['pchange_submit'])) { 
    echo $_POST['tobechanged']; 
} 
関連する問題