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];
4

5 回答 5

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

于 2013-10-07T15:49:34.390 回答
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"];
}
于 2013-10-07T15:48:31.047 回答
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];

}
于 2013-10-07T15:51:48.473 回答
0

您可以使用mysql_fetch_arraymysql_fetch_assoc来自 PHP 文档。那里有例子解释。

另外,请避免使用mysql函数,因为它们已被弃用。而是使用PDOmysqli

于 2013-10-07T15:49:47.473 回答
0

一个简单的循环结构,用作每个 php/mysql 代码的基础;)

while($rows = mysql_fetch_assoc($sql)) {
    echo 'name: '. $rows[$name] . '</br>' . 'e-mail: '. $rows[$email]
}
于 2013-10-07T15:49:58.220 回答