2015-10-20 82 views
-5

獲取數據庫表的列名並在PHP頁面中顯示它們的最佳方式是什麼?我只能收集並顯示錶格行。從數據庫中收集表名的列名

$connection = mysql_connect('localhost', 'root', ''); 
mysql_select_db('...'); 
$query = "SELECT * FROM ..."; 

$result = mysql_query($query); 

echo "<table class='table'>"; 
echo '<tr>'; 
for ($i = 0; $i < mysql_num_fields($result); $i++) { 
    echo "<th>".mysql_field_name($result, $i)."</th>"; 
} 
echo '</tr>'; 
while($row = mysql_fetch_array($result)){ 
echo "<tr class='info'><td>" . $row['name'] . "</td> 
       <td>" . $row['mail'] . "</td> 
       <td>" . $row['number'] . "</td> 
       <td>" . $row['price'] . "</td> 
       <td>" . $row['paymenttype'] . "</td> 
       <td>" . $row['pcname'] . "</td> 
       </tr>"; 
} 
echo "</table>"; 
mysql_close(); 
?> 
+0

我看到兩個大** **的問題在這裏。 1)您正在使用已經從PHP中刪除了很長一段時間的擴展。這是特別危險的,因爲你說你只是在學習PHP。請參閱[PHP手冊](http://php.net/manual/en/mysqlinfo.api.choosing.php)瞭解更多關於使用新API的詳細信息。 2)列名是你的'$ row'數組的關鍵。因此'$ row ['foo']'是該結果行中的列'foo'的值。你的數據庫模式是靜態的,所以你應該總是知道你的列名是什麼。 – Sherif

+0

所以我必須首先使用Msqli。 – gigi

+2

你可以使用[MySQLi](http://php.net/mysqli)或[PDO](http://php.net/pdo),但是無論你做什麼**絕對不能使用[舊的mysql擴展](http://php.net/manual/en/ref.mysql.php),因爲它已被棄用和刪除很久以前。在我看來,PDO是一個更優雅的界面,但MySQLi可以爲您提供MySQL API原生的完整供應商特定功能集,因爲PDO是與供應商無關的界面。對於剛剛學習PHP的初學者,我會建議堅持使用PDO,因爲您可能不需要MySQLi必須提供的任何高級功能。 – Sherif

回答

-2

做一個單獨的查詢與

SHOW COLUMNS FROM {table_name} 
+0

更新了我的問題,類似的東西? – gigi

+2

請認真解釋爲什麼這會起作用。 –

+0

這不提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 –