1

データベースからチェックボックスリストにデータをロードして表示および選択したいのですが、これが私のコードです。しかし、それは機能していないので、誰かが私のためにこのコードを修正できますか?

これを実行すると、「解析エラー:構文エラー、70行目のC:\ xampp \ htdocs\test.phpで予期しない$end」というエラーメッセージが表示されます。

<?php   
    $section = mysql_query("SELECT DISTINCT Section_Text FROM Section");

    while ($row = mysql_fetch_array($section)){
   {
    echo "<tr><td>";
    echo "<input type='checkbox' name='Section' value ='Section_Text'";
    echo " />";
    echo $row['Section_Text'];

    echo "</td></tr><br/>";
   }

?>
4

4 に答える 4

1

whileループ:

while ($row = mysql_fetch_array($section)){
   {

なぜ2つあるの{ですか?それらの1つを削除します。

于 2012-07-10T21:31:11.357 に答える
1

whileループの直後が{多すぎます。それらの1つを削除すると、コードが機能します。

mysqlさらに、データベースにアクセスするには、非推奨の拡張機能ではなく、PDO(またはmysqli)を実際に使用する必要があります。

于 2012-07-10T21:25:51.767 に答える
1

{while 宣言の後の double を削除します。

コードを少しリファクタリングすることをお勧めします。

  • を使用して出力をエスケープしますhtmlentities($row['Section_Text'])
  • $位置指定のprintf 表記法を繰り返し使用しないでください
  • <label ... />記法を使用してフォームをアクセシブルに保つ:これを確認してください

    <?php   
    $section = mysql_query("SELECT DISTINCT Section_Text FROM Section");
    
    $n = 0;
    while ($row = mysql_fetch_array($section))
    {
        print "<tr><td>" . PHP_EOL;
        printf('<input type="checkbox" name="section_%2$d" id="section_%2$d" value="%1$s" />
             <label for="section_%2$d">%1$s</label>' . PHP_EOL,
              htmlentities($row['Section_Text'], ENT_QUOTES), $n++
        );
        print "</td></tr>" . PHP_EOL;
    }
    
于 2012-07-10T21:51:33.173 に答える
0

しばらくの間、2つの{があります。1つ削除してください。また、
タグを削除し、cssを使用して目的のパディングを取得します

于 2012-07-10T21:34:36.443 に答える