2013-10-07 35 views
1

我有點新來編程和我的基本knowladge我試圖創建一個頁面顯示保存在我的數據庫中的消息。 (我已經讓它可以放入消息)從數據庫加載消息

我想出瞭如何在頁面上顯示一條消息,但這是數據庫中的第一條消息。

我怎樣才能讓它不僅顯示一個,而且顯示所有的消息?

這是到目前爲止我的代碼..

<?php 
$host = "localhost"; 
$user = "root"; 
$pwd = ""; 
$db_name = "berichten"; 

mysql_connect($host, $user, $pwd)or die("cannot connect"); 
mysql_select_db($db_name)or die("cannot select DB"); 

$sql = mysql_query("SELECT * FROM messages ORDER BY id ASC"); 
$id = 'id'; 
$name = 'naam'; 
$email = 'email'; 
$onderwerp = 'onderwerp'; 
$bericht = 'bericht'; 
$rows = mysql_fetch_assoc($sql); 

echo 'name: '. $rows[$name] . '</br>' . 'e-mail: '. $rows[$email] . '</br>' . 'onderwerp: ' . $rows[$onderwerp] . '</br>' . 'bericht: ' . $rows[$bericht]; 
+0

'而($行= mysql_fetch_assoc($ SQL){}' –

+2

下車的mysql擴展現在使用mysqli或者PDO,這個擴展從PHP 5.5.0開始已經被棄用,並且將來會被刪除。 – AbraCadaver

回答

1

改變這一行:

$rows = mysql_fetch_assoc($sql); 

要這樣:

while ($row = mysql_fetch_assoc($sql)) 
{ 
    echo 'name: '. $rows[$name] . '</br>' . 'e-mail: '. $rows[$email] . '</br>' . 'onderwerp: ' . $rows[$onderwerp] . '</br>' . 'bericht: ' . $rows[$bericht]; 
} 

但是,請注意,MySQL擴展棄用,而且最好是使用新的MySQLi擴展。

你可以閱讀一下:http://php.net/manual/en/book.mysqli.php

或者,您可以使用PDO:http://php.net/manual/en/book.pdo.php

+1

我明白了,感謝大家的幫助:) – Moopsish

1

你只需要來包裝你mysql_fetch_assoc在while循環遍歷整個結果集。就像這樣:

$sql = 'SELECT * FROM messages ORDER BY id ASC'; 
$result = mysql_query($sql); 
while ($row = mysql_fetch_assoc($result)) { 
    echo $row["name"]; 
    echo $row["e-mail"]; 
    echo $row["onderwerp"]; 
    echo $row["bericht"]; 
} 
+0

編輯建議:添加鏈接到http://php.net/manual/en/function.mysql-fetch -assoc.php –

+0

和另一個建議:使用pdo或mysqli –

0

您可以使用mysql_fetch_arraymysql_fetch_assoc從PHP文件。在那裏用例子來解釋。

此外,請避免使用mysql函數,因爲它們已被棄用。

 $sql = mysql_query("SELECT * FROM messages ORDER BY id ASC"); 

你已經基本上把所有:做這個)

while($rows = mysql_fetch_assoc($sql)) { 
    echo 'name: '. $rows[$name] . '</br>' . 'e-mail: '. $rows[$email] 
} 
0

一個簡單的循環結構,使用中的每一個PHP/MySQL的代碼基將數據庫中的行移動到名爲$sql的變量中,該變量是行數組。由於每行都有多個項目,因此該行也可以視爲數組。因此,$sql is an Array of Arrays

所以,你需要遍歷這個名爲$ SQL這樣的小數組:

while($each = mysql_fetch_assoc($sql)){ 
     // $each is a cursor, and loops over all the elements of the $sql sequentially. 

    echo 'name: '. $each[$name] . '</br>' . 'e-mail: '. $each[$email] . '</br>' 
    . 'onderwerp: ' . $each[$onderwerp] . '</br>' . 'bericht: ' . $each[$bericht]; 

} 
1

;而是使用PDOmysqli