2015-11-19 32 views
0

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

失踪'的部分之间;'在该行的末尾,上面写着'$ dbResult = mysqli_query($ db,$ q)' –

+0

如果$ num没有设置为一个值,那么$ num == 0将始终为真 – AVProgrammer

+0

@MarkBaker谢谢。在大家指出这一点之后,我意识到我犯了一个菜鸟错误。 –

回答

2

由于上一行认为它尚未完成,因此您忘记了分号。更改此:

$dbResult = mysqli_query($db,$q) 

到:

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

谢谢。对不起,我有atm>这样的愚蠢。< –

1

检查分号每个语句。意外的令牌错误可能表示您错过了分号,请检查错误消息指示的行中的前一条语句。另外,如果您打算将SQL语句拆分为多个字符串,然后将它们连接起来(为什么?),请确保您有需要它们的空间:PHP不会将连接的文字与空格连接起来,它只是表示smooshes他们在一起。

例如:

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

我不太熟悉php,所以谢谢你的解释。 –

1

一目了然,你应该把空间的SQL语句

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

谢谢你解决了我遇到的另一个问题 –