2015-10-20 41 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

这不提供问题的答案。要批评或要求作者澄清,请在其帖子下方留言。 –