2012-09-05 133 views
3

我想查詢和選擇數據從一個SQL表格,然後顯示在HTML中。這是我的代碼。在HTML表格中顯示SQL表格數據不工作

$result = mysqli_query($dbhandle, $query) 
    or die(mysql_error().'<br>SQL:'.$query); 
echo '<table style ="border:1px solid black;">'; 

while($row = mysqli_fetch_array($result)) { 
    echo '<tr>'; 
    echo '<td style="border:1px solid black;">{$row['first_name']}</td>'; 
    echo '<td style="border:1px solid black;">{$row['last_name']}</td>'; 
    echo '<td style="border:1px solid black;">{$row['grade']}</td>'; 
    echo '<td style="border:1px solid black;">{$row['gpaP']}</td>'; 
    echo "<td style="border:1px solid black;">{$row['AGP']}</td>"; 
    echo "<td style="border:1px solid black;">{$row['awardP']}</td>"; 
    echo "<td style="border:1px solid black;">{$row['awardTP']}</td>"; 
    echo "<td style="border:1px solid black;">{$row['rigorP']}</td>"; 
    echo "<td style="border:1px solid black;">{$row['APP']}</td>"; 
    echo "<td style="border:1px solid black;">{$row['positionP']}</td>"; 
    echo "<td style="border:1px solid black;">{$row['hoursP']}</td>"; 
    echo "<td style="border:1px solid black;">{$row['selectionP']}</td>"; 
    echo "<td style="border:1px solid black;">{$row['activityTypeP']}</td>"; 
    echo "<td style="border:1px solid black;">{$row['activityYearsP']}</td>"; 
    echo "<td style="border:1px solid black;">{$row['date']}</td>"; 
    echo "<td style="border:1px solid black;">{$row['IP']}</td>"; 
    echo '</tr>'; 
} 
echo '</table>'; 

它給了我一個錯誤,說在last_name單元格有一個意外的字符串。如果我從它工作的單元中刪除樣式參數。有人指出我的錯誤嗎?

回答

2

您的代碼混合兩種不同風格的報價,這兩者在PHP中是有效的,兩者都需要一些額外的轉義。

你應該選擇一種風格(包裝在單引號中或用雙引號包裝),然後確保在字符串中轉義相同類型的引號。

+0

這完成了這項工作,謝謝! – lonewaft

1

您正在混合單引號'加雙引號""。例如,如果您以"開頭,然後在之前再次使用,那麼您需要使用\"將其轉義。我的建議是爲你堅持一種風格,並將其用於全部的線條。例如,usign ""

echo "<td style=\"border:1px solid black;\">{$row['first_name']}</td>"; 
    echo "<td style=\"border:1px solid black;\">{$row['IP']}</td>"; 
+0

@lonewaft:在這種情況下,您可能是用'「」'而不是'''開始了字符串。 –

+0

啊,我明白了..謝謝! – lonewaft

+0

@lonewaft其他行也是不正確的。您有一個雙引號來打開'echo'的參數,並且您正在使用雙引號來設置樣式。在這種情況下,您應該爲樣式使用單引號。 –

3

你的單曲和雙曲在PHP和HTML之間混合起來。要解決這個問題最簡單的方法是使用定界符:

echo <<<EOT 
<tr> 
<td style="border:1px solid black;">{$row['first_name']}</td> 
<td style="border:1px solid black;">{$row['last_name']}</td> 
<td style="border:1px solid black;">{$row['grade']}</td> 
<td style="border:1px solid black;">{$row['gpaP']}</td> 
<td style="border:1px solid black;">{$row['AGP']}</td> 
<td style="border:1px solid black;">{$row['awardP']}</td> 
<td style="border:1px solid black;">{$row['awardTP']}</td> 
<td style="border:1px solid black;">{$row['rigorP']}</td> 
<td style="border:1px solid black;">{$row['APP']}</td> 
<td style="border:1px solid black;">{$row['positionP']}</td> 
<td style="border:1px solid black;">{$row['hoursP']}</td> 
<td style="border:1px solid black;">{$row['selectionP']}</td> 
<td style="border:1px solid black;">{$row['activityTypeP']}</td> 
<td style="border:1px solid black;">{$row['activityYearsP']}</td> 
<td style="border:1px solid black;">{$row['date']}</td> 
<td style="border:1px solid black;">{$row['IP']}</td> 
</tr> 
EOT; 

這句法使得它更容易,因爲你可以同時使用單引號和雙引號沒有逃脫他們和變量進行評估。另外,在您的原始代碼中,變量不會被評估,因爲它們使用單​​引號。

+0

我會盡量使用下次!謝謝! – lonewaft