1

次のような単純なループを使用しています。

$query = "SELECT * FROM $username"; 
$result = mysql_query($query) or die(mysql_error());
    while($row = mysql_fetch_array($result)){
        echo $row['id']. " - ". $row['file'];
        echo "<br />";
                echo "<form method="post" action="" style="width: 80px">
            <input name="Checkbox1" type="checkbox" /><input name="Submit1" type="submit"               value="submit" /></form>";

このように実行すると、 < が予期しないというエラーが表示されます。私は何か完全に間違ったことをしているかもしれないと信じています。PHPループ内でテーブルを出力する他のアプローチはありますか?

4

5 に答える 5

7

次の行を参照してください。

echo "<form method="post" action="" style="width: 80px">
     ^             ^
     |             End of string
     Start of string

\"同じ種類の引用符で区切られた文字列内の引用符 ( ) をエスケープします。

于 2012-06-08T22:29:42.637 に答える
4

引用符内に引用符があります。を使用してエスケープする必要があります\

echo "<form method=\"post\" action=\"\" style=\"width: 80px\">...";

一重引用符も使用できます。

echo '<form method="post" action="" style="width: 80px">...';

一重引用符と二重引用符の違いは、一重引用符は変数を表示しないことです。

<?php
$a = 'b';
echo '$a'; // output: $a
echo "$a"; // output: b
echo $a; // output b
于 2012-06-08T22:32:46.057 に答える
1

それが唯一の問題かどうかはわかりませんが、二重引用符をエスケープする必要があります:

echo "<form method=\"post\" action=\"\" style=\"width: 80px\">
        <input name=\"Checkbox1\" type=\"checkbox\" />
        <input name=\"Submit1\" type=\"submit\" value=\"submit\" />
      </form>";

単純な引用符を使用して文字列を区切ることもできます:

echo '<form method="post" action="" style="width: 80px">
        <input name="Checkbox1" type="checkbox" />
        <input name="Submit1" type="submit" value="submit" />
      </form>';
于 2012-06-08T22:31:14.217 に答える
0

二重引用符をエスケープするか、echo ステートメントに単一引用符を使用する必要があります。

于 2012-06-08T22:34:55.757 に答える
0

バックスラッシュなし"で二重引用符ステートメント内の文字列を指定するために、二重引用符 () を使用することはできません。次の 3 つの選択肢があります。echo "<div id="pong" >;\"

  1. の最初と最後"を変更する'
  2. コードにバックスラッシュを入れます。
  3. 次のように文字列を連結します: echo"<form method="."post".">"
于 2012-06-08T22:35:04.013 に答える