任务是:更改水果订单表单,通过从数据库中提取项目而不是硬编码来构建名称、价格和重量表。显示数据库中的每一项。不要以为你知道物品的数量。我遇到问题是因为我的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;";