2013-10-02 65 views
0

真的很新,PHP和Mysql在這裏,並試圖教我自己! 我用 echo mysql_field_name($result, 0) 顯示錶中的某個字段名稱,並可以通過更改數字來更改哪一個。 我的問題是,我如何回顯特定字段名稱的列表,例如2-8將它們放在HTML表格中?如何顯示特定的字段名稱?

謝謝!

+2

難道你只是在一個循環中調用'mysql_field_name'並增加你傳遞它的數字? – mam8cc

+1

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – h2ooooooo

+0

啊對,我不知道PDO,我會通讀教程並試着弄清楚。我認爲我一直在學習mysql的教程一定很老! – Anon

回答

0

如果您使用某些庫,例如PDO或mysqli(您應該使用它而不是mysql),並且使用選項將每行數據檢索爲關聯數組,則字段名稱將作爲關鍵值陣列。您可以通過這種方式獲取字段名稱,而無需額外的開銷來單獨查詢以獲取字段名稱。

+0

謝謝,有人在另一條評論中提到了PDO和mysqli,我想這對我來說是另一回事! – Anon

0

所以一些評論...

首先,mysql_庫的固定資產5.5及更高版本。如果你是PHP的新手,我會強烈建議你學習mysqli library而不是使用對象版本。我的例子會假設你有一個mysqli對象。有程序方法可以做同樣的事情,你只需要每次傳遞你的數據庫連接指針。

所以我們有一些DB連接器查詢。

$sql = 'Some statement here'; 
$result = $mysqli->query($sql); 

在這一點上我們有一個結果。有一些比mysql_field_name更好的從表中獲取數據的方法。一個是fetch_object,另一個是fetch_assoc。不同的是,FETCH_ASSOC會給你一個關聯數組和其他會給你一個對象

$row = $result->fetch_assoc(); 
echo $row['fieldname']; 

$row = $result->fetch_object(); 
echo $row->fieldname; 

還有其他的方法來獲取數據,但這些是兩個最常見的,因爲他們是最容易理解的。

現在,如果您不知道自己的字段名稱,則可以始終使用fetch_fields()來獲取該數據。

+0

這也很有用,謝謝你,因爲我希望在不知道字段名稱的情況下構造查詢。 – Anon

0

如果您想使用MySqli,您可以使用While循環輕鬆完成此操作。如果您想要在表格中顯示,那麼確實很容易。

連接到數據源(如果你正在使用MySQL不mysqli的,我建議切換。)

$con=mysqli_connect("example.com","peter","abc123","my_db");

這時你想運行您的SQL腳本來獲取數據:

$mydata = mysqli_query($con, "SELECT * FROM mytable");

這是While循環將發揮作用的地方,以顯示在表格中。

echo '<table><tr><th>Field1</th><th>Field2</th></tr>'; 

//This bascially says while you can fetch data from your database, do the 
//the following with the label $mytable. 
while($mytable = mysqli_fetch_array($mydata)) { 
    echo '<tr><td>'.$mytable['yourfieldnameinyourdb'].'<td>'; 
    echo '<td>'.$mytable['your2fieldnameinyourdb'].'</td></tr>'; 
} 

echo '</table>'; 

所以完整的代碼如下:

<? 
// Connect your your DB 
$con=mysqli_connect("example.com","peter","abc123","my_db"); 
// Get your data 
$mydata = mysqli_query($con, "SELECT * FROM mytable"); 
// Start the table 
echo '<table><tr><th>Field1</th><th>Field2</th></tr>'; 
// Do the loop 
while($mytable = mysqli_fetch_array($mydata)) { 
    echo '<tr><td>'.$mytable['yourfieldnameinyourdb'].'<td>'; 
    echo '<td>'.$mytable['your2fieldnameinyourdb'].'</td></tr>'; 
} 
// End your table 
echo '</table>'; 
?> 

如果這不太回答你的問題,只是讓我知道。

+0

這是一個非常好的回覆,正是我想要做的,謝謝! – Anon

相關問題