2015-11-19 34 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

謝謝你解決了我遇到的另一個問題 –