-4

可能重复:
解析错误:语法错误,意外的 T_STRING 59

我有一个数据库,其名称希望以带有复选框的表格形式显示。一切正常,直到我尝试将 html 标记放入我的 php 代码中。当我将输入标签放入其中时,会出现错误:

解析错误:语法错误,意外的 T_STRING,期待 ',' 或 ';'

我看不到在哪里放置逗号或分号。

<form>
    <?php
    $name = $_POST['name'];

    $host = "mysql16.000webhost.com";
    $user_name = "a1611480_akaash";
    $pwd = "****";
    $database_name = "a1611480_akaash";
    $db = mysql_connect($host, $user_name, $pwd);

    mysql_select_db($database_name);

    $result = mysql_query("SELECT name FROM Sort");

    $var = array();
    while ($row = mysql_fetch_array($result)) {
        $var[] = $row['name'];
    }

    $unique = array_unique($var);

    foreach ($unique as $value) {

        echo "<p class = Body_text><label>$value</label> <input type="checkbox" name="name" value="$value" /> </p>\n";
    }
    ?>
</form>
4

5 回答 5

2

在您的回声线上,整个内容必须用双引号括起来。您在复选框之前打开双引号,因此它会将复选框视为未知的 PHP 调用。使用单引号和双引号的组合。

于 2012-11-13T22:55:00.110 回答
1

改变这一行..你必须逃避双引号

echo "<p class = Body_text><label>$value</label> <input type=\"checkbox\" name=\"name\" value=\"$value\" /> </p>\n";
于 2012-11-13T22:55:07.773 回答
1

替换这个:

echo "<p class = Body_text><label>$value</label> <input type="checkbox" name="name" value="$value" /> </p>\n"

有了这个:

echo <<<EOD
<p class = Body_text><label>$value</label> <input type="checkbox" name="name" value="$value" /> </p>
EOD;

... 这使用HEREDOC 语法,可以轻松绕过您的大部分报价问题。但是,它有一个重要的警告:该行EOD; 不能缩进,并且该行上不能有任何其他内容(例如尾随空格)。

于 2012-11-13T22:55:20.590 回答
0

将“回声”行替换为

echo "<p class = Body_text><label>$value</label> <input type='checkbox' name='name' value='$value' /> </p>\n";

因为您使用双引号作为字符串分隔符以及复选框本身,所以它有点脱离了 php 字符串。

于 2012-11-13T22:55:06.150 回答
0

您需要转义反斜杠,或者使用heredoc 语法。请参阅下面的几个示例,其中您正在破坏您的 PHP 代码:

echo "<p class = Body_text><label>$value</label> <input type="checkbox" name="name" value="$value" /> </p>\n";
                                                            ^^^      ^^^
于 2012-11-13T22:55:37.663 回答