如果

时间:2015-11-19 22:07:16

标签: php database if-statement while-loop

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

3 个答案:

答案 0 :(得分:2)

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

$dbResult = mysqli_query($db,$q)

为:

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

答案 1 :(得分:1)

检查每个语句是否有分号。意外的令牌错误可能表示您错过了分号,请检查错误消息所指示的行中的上一个语句。

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

例如:

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

答案 2 :(得分:1)

一目了然,你应该在sql语句的部分之间留出空格

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