Php 从数据库加载消息
我对编程有点陌生,根据我的基本知识,我试图创建一个页面来显示保存在数据库中的消息。(我已经做了,这样信息就可以放进去了) 我知道如何在页面上显示一条消息,但这是数据库中的第一条消息 如何使它不仅显示一条消息,而且显示所有消息 这是到目前为止我的代码Php 从数据库加载消息,php,mysql,Php,Mysql,我对编程有点陌生,根据我的基本知识,我试图创建一个页面来显示保存在数据库中的消息。(我已经做了,这样信息就可以放进去了) 我知道如何在页面上显示一条消息,但这是数据库中的第一条消息 如何使它不仅显示一条消息,而且显示所有消息 这是到目前为止我的代码 <?php $host = "localhost"; $user = "root"; $pwd = ""; $db_name = "berichten"; mysql_connect($host, $user, $pwd)or die("ca
<?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];
您只需将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"];
}
更改此行:
$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];
}
while($row=mysql\u fetch\u assoc($sql))
{
回显“名称:”.$rows[$name]。”.“电子邮件:”.$rows[$email]。“.$onderwerp:”.$rows[$onderwerp]。”.“bericht:”.$rows[$bericht];
}
但是,请注意,MySQL扩展已弃用,最好使用新的MySQLi扩展
您可以在此处阅读:
或者,您可以使用PDO:您可以使用PHP文档中的mysql\u fetch\u array
或mysql\u fetch\u assoc
。这是解释那里的例子
另外,请避免使用mysql
函数,因为它们已被弃用。而是使用PDO
或mysqli
一个简单的循环结构,用作每个php/mysql代码的基础;)
while($rows=mysql\u fetch\u assoc($sql)){
回显“名称:”.$rows[$name]。'.“电子邮件:”.$rows[$email]
}
通过执行以下操作:
$sql = mysql_query("SELECT * FROM messages ORDER BY id ASC");
实际上,您已经将数据库中的所有行放入了名为$sql
的变量中,该变量是一个行数组。由于每行有多个项,因此该行也可以被视为数组。因此,$sql是一个数组数组
因此,您需要迭代这个名为$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];
}
while($each=mysql\u fetch\u assoc($sql)){
//$each是一个游标,并按顺序在$sql的所有元素上循环。
回显“姓名:”.$each[$name]。.“电子邮件:”.$each[$email]。'
“onderwerp:”.$each[$onderwerp]。”.“bericht:”.$each[$bericht];
}
while($rows=mysql\u fetch\u assoc($sql){}
立即退出mysql扩展。使用mysqli或PDO。从PHP 5.5.0开始,此扩展已被弃用,将来将被删除。编辑建议:添加指向的链接和其他建议:使用PDO或mysqli
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];
}