0

以下のようなコード php があるとします。

<?php
    include("connectdb.php");
    $check1 = "";
    $check2 = "";
    $check3 = "";
    $check4 = "";
    $check5 = "";
    $query = "SELECT * FROM tblworkfaire";
    $res = mysql_query($query) or die(mysql_error());
        if($res){
            while($data = mysql_fetch_array($res)){
                if($data['1.DesTechnique'] == 1){
                    $check1 = "CHECKED";    
                    echo $check1;
                }
                else if($data['1.DesTechnique'] == 2){
                    $check2 = " CHECKED";   
                }
                else if($data['1.DesTechnique'] == 3){
                    $check3 = "CHECKED";    
                }
                else if($data['1.DesTechnique'] == 4){
                    $check4 = "CHECKED";    
                }
                else if($data['1.DesTechnique'] == 5){
                    $check5 = "CHECKED";    
                }
            }
        }
        else{
            echo "Fail";
        }

?>

そしてHtmlコード:

 <form  action="word2html.php" method="post">
    <input type="radio" name="number1" value="1" checked="<? $check1; ?>">
            </b><b>
            <input name="number1" type="radio" value="2" checked="<? $check2; ?>">
            </b><b>
            <input name="number1" type="radio" value="3" checked="<? $check3; ?>">
            </b><b>
            <input  name="number1" type="radio" value="4" checked="<? $check4; ?>">
            </b><b>
            <input name="number1" type="radio" value="5" checked="<? $check5; ?>">
            </b>

必要なもの:

ラジオ ボックスの値をデータベースに保存しました。データベースから値 1 を選択すると、値が 1 のラジオ ボックスがチェックされます。

問題:

データベースからラジオ ボックスの値しか選択できず、機能しません。これを修正するにはどうすればよいですか? 誰でも私を助けてください、ありがとう。

4

2 に答える 2

1

それはかなり恐ろしいコードです。

最初の問題:while()クエリから結果を取得するためにループを実行しています。複数行のデータをフェッチしている場合、それらの変数のすべてまたは一部を設定しますが、$checkXその特定のループ反復中に実際には何もしません。十分な数の行をフェッチすると仮定すると、最終的にこれらの変数はすべて取得さcheckedれ、すべてのラジオ ボタンを選択することになります。

単一行のデータのみを期待している場合、while() は単なるカーゴ カルト プログラミングです。

2番目の問題。ループではるかに簡単/クリーンに実行できる何かのために、そこで多くのコードを繰り返し、多くの変数を定義しました。例えば

for ($i = 1; $i <= 5; $i++) {
   $checked = ($data['1.DesTechnique'] == $i) ? ' checked="checked"' : '';
   echo <<<EOL
<input name="number1" type="radio" value="$i"$checked>$i<br />

EOL;
}

$checkX 変数や繰り返し入力はありません。あなたのために出力を行う素敵なループです。

于 2012-09-14T02:06:00.540 に答える
0

変数を出力する必要があります。

<input type="radio" name="number1" value="1" checked="<?php echo $check1; ?>">
于 2012-09-14T02:05:15.027 に答える