作爲標題狀態,我的目標是使用來自MySQL數據庫的數據生成HTML表格。從MySQL和PDO填充HTML(PHP); foreach循環無法寫入MySQL數據
我使用的一般方法是合理的,因爲我手動編寫了一系列單元格,但我試圖將其縮放到包含大量字段,並且正在嘗試爲單元格編寫HTML PHP和foreach循環與數組。我已經寫出了我的工作背景和步驟,以便爲我的問題提供背景,併爲處於類似情況的人們提供一般幫助。然而,我知道,我所具有的問題特別出現在代碼的一個部分 - 如果您想跳過它,就會在下面明確指出。
第1步定義數組爲標題,我想在MySQL數據庫中的字段有和列名:
$titles = array('Name', 'Age', 'Height', 'Weight');
$headers = array('q1', 'q2', 'q3', 'q4');
第2步:連接到數據庫($ username和$密碼先前定義):
try {
$pdo = new PDO('mysql:host=localhost; dbname=db01', $username, $password);
$pdo->exec("SET CHARACTER SET utf8");
3步:通過幾個串連創建我的SQL語句,並獲取$結果:
$sql ="SELECT";
foreach(array_combine($headers, $titles) as $header => $title) {
$sql .= "`$header` AS `$title`,";
}
$sql .= "`q5` AS `Eye Color`";
$sql .= "FROM samdata.CO_data";
$result = $pdo->query($sql);
第4步:通過串聯靜態HTML創建$ html_table,並從上面的SQL查詢
if($result !== false) {
$html_table = '<table><tr>';
foreach($titles as $title) {
$html_table .= "<th> $title </th>";
}
$html_table .='</tr> <tr>';
//*********PROBLEM SECTION BELOW **************************
foreach(array_combine($result, $titles) as $row => $title) {
$html_table .= "<td>' .$row\['$title'\]. '</td>";
}
}
//*********PROBLEM SECTION ABOVE **************************
$html_table .= '</tr> </table>';
$conn = null;
echo $html_table;
}
結果我知道問題出在部分所示,因爲我所有的測試其他部分,如果不是組合陣列/ foreach循環,而是我手動寫出,例如:
foreach($result as $row) {
$html_table .= '
<tr>
<td>' .$row['Names']. '</td>
<td>' .$row['Age']. '</td>
<td>' .$row['Height']. '</td>
</tr>';
}
取代循環,然後它工作正常,並顯示這些標題的每個結果的數據,問題是我有數百個,並希望更優雅(和懶惰)比寫出他們一個接一個!
我哪裏錯了?非常感謝您的幫助。
能你嘗試改變這條線'''''''''$''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' – noel
好主意 - 但不會改變不幸。 – Gideon
我只是認爲單引號會阻止代碼被運行。 – noel