如果出现意外的数据库帮助语法错误


Database Help Syntax error unexpected if

任务是:更改水果订单表单,通过从数据库中提取项目而不是硬编码来构建名称、价格和重量表。显示数据库中的每一项。不要以为你知道物品的数量。我遇到问题是因为我的if语句中的某些内容,或者可能是我的while循环。我不知道我到底做错了什么,我需要一些帮助来解决这个问题。

    <table>
        <th>Fruits For Sale!</th>
        <tr><th>Fruits</th><th>Weight</th><th>Price</th></tr>
         <?php
        $db=mysqli_connect(null,null,null,'weblab')
        or die("Can't connect to DB:" . mysqli_connect_error());
        $q = "select fruit_item_no, fruit_name, fruit_weight, fruit_price";
        $q .= "from fruit_t";
        $q .= "order by fruit_name;";
        $dbResult = mysqli_query($db,$q)
        if ($num == 0) {
         echo '<tr><td colspan="2">';
        echo 'Database query retrieved zero rows.</td></tr>';
}
 while ($row = mysqli_fetch_assoc($dbResult)) {
        $name = $row['fruit_name'];
        $weight = $row['fruit_weight'];
        $price = $row['fruit_price'];
        echo "<tr><td><b>$name</b></td>";
        echo "<td>$weight</td>";
        echo "<td>$price</td></tr>'n";
}
?>
</table>

您得到了一个意外的if,因为前一行认为它还没有完成,您忘记了分号。更改此项:

$dbResult = mysqli_query($db,$q)

至:

$dbResult = mysqli_query($db,$q);

检查每条语句中的分号。意外的标记错误可能表明您遗漏了一个分号,请检查错误消息指示的行中的上一条语句。

此外,如果您要将SQL语句拆分为多个字符串,然后连接它们(为什么?),请确保在需要它们的地方有空格:PHP不会将连接的文字与空格连接起来,它只是将它们混合在一起。

例如:

<?php
$text = 'SELECT *';
$text .= 'FROM table';
$text .= 'WHERE 1';
echo $text;
// $text is equal to the following:
// 'SELECT *FROM tableWHERE 1'

您应该在sql语句的各部分之间留有空格

$q .= " from fruit_t";
$q .= " order by fruit_name;";