2013-10-07 2 views
1

Я немного новичок в программировании и с моим базовым знанием. Я пытаюсь создать страницу, отображает сообщения, сохраненные в моей базе данных. (я уже сделал так, чтобы сообщения могли быть вставлены)Загрузка сообщений из базы данных

Я понял, как отображать на странице одно сообщение, но это первое сообщение в базе данных.

Как я могу сделать так, чтобы он отображал не только один, но и отображал все сообщения?

это мой код до сих пор ..

<?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 в время цикла для перебора полного набора результатов. Как это:

$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_array или mysql_fetch_assoc из документации PHP. Там объясняются примеры.

Кроме того, любезно избегайте использования функции mysql, поскольку они устарели. Вместо использования PDO или mysqli

0

простую структуру цикла, используют, чтобы быть основой любого кода PHP/MySQL;)

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

делая это:

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

Вы существенно поставить все строки из базы данных в эту переменную, которая называется $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]; 

} 
Смежные вопросы