PHP从数据库循环读取数据问题
世界只因有你
世界只因有你 2017-06-29 10:08:05
0
4
976

如下图所示,为什么程序不能读出数据库数据?

世界只因有你
世界只因有你

全部回复(4)
ringa_lee

你的代码上有几个问题:

  1. 连接上数据库之后,选择数据表的操作mysql_select_db()要在查询操作mysql_query()之前,否则查询不知道在哪个数据表中查,就会直接在整个数据库运行语句。然而,你这个SQL语句写法却不符合数据库上查询的格式,所以会执行失败,也就是没有数据。

  2. mysql_query()对于SELECT语句,返回的是一个资源引用或者FALSE值,要遍历里面所有的行需要使用mysql_fetch_assoc()遍历资源并返回行数据。

  3. 建议不要将<?php的问号和php分开来写,因为这个是引擎识别PHP开始的标识,分开可能会导致引擎识别出错

所以,
第一点,把mysql_select_db()mysql_query()两行调换位置。mysql_select_db()mysql_query()两行调换位置。
第二点,将foreach($result as $row)改为while($row = mysql_fetch_assoc($result))第二点,将foreach($result as $row)改为while($row = mysql_fetch_assoc($result))

洪涛

应该是mysql_select_db('news', $conn);

代言

mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。
对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。
非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。这并不说明任何有关影响到的或返回的行数。很有可能一条查询执行成功了但并未影响到或并未返回任何行。

mysql_fetch_assoc() 函数从结果集中取得一行作为关联数组。
返回根据从结果集取得的行生成的关联数组,如果没有更多行,则返回 false。

while($row = mysql_fetch_assoc($result)) {
    echo $row["id"];
}
过去多啦不再A梦

去掉判断的!

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!