首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL向PHP返回奇怪的结果

问MySQL向PHP返回奇怪的结果
EN

Stack Overflow用户
提问于 2013-10-28 21:10:08
回答 3查看 188关注 0票数 0

我正在开发一个PHP应用程序,并试图从一个名为文章的表中检索所有数据,以便在屏幕上显示它们。我已经插入了两个样本条目如下:

SQL结果主机:本地主机数据库:示例生成时间:2013年10月28日上午09:04PM生成: phpMyAdmin 4.0.8 / MySQL 5.5.30-日志SQL查询:选择*从articles限制0,30;行:2 article_id article_title article_content article_timestamp 3示例标题文本0 4标题内容1234567

下面是导致错误的代码,其中包含一个小的调试打印:

代码语言:javascript
复制
<?php
class Article {
    public function fetch_all() {
        global $pdo;
        $query = "Select * from articles";
        $result = mysql_query($query);
        $res_array = mysql_fetch_array($result);
        foreach ($res_array as $x) {
            echo $x;
            echo "............";
        }
    }
}?>

而不是获得两个条目,我只得到第一个1...in双。更确切地说:

title............Text............Text............0............0............ 3............3............Sample title............Sample

我不确定,我在这里做错了什么。谁能给点提示吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-28 21:19:23

首先,您只调用mysql_fetch_array一次,这就是为什么您只能得到一行。您应该在循环中调用它,直到它返回fale值,这意味着在结果集中不再有行。

第二,默认情况下,mysql_fetch_array返回哈希和数组的bizzare混合,这是一个按列号和列名索引的数组,这说明了为什么值是重复的。您可以传递MYSQL_NUM,以只获得按列编号索引的值。

代码语言:javascript
复制
while ($res_array = mysql_fetch_array($result, MYSQL_NUM)) {
    foreach ($res_array as $x) {
        echo $x;
        echo "............";
    }
    echo "\n"; // ???
}
票数 1
EN

Stack Overflow用户

发布于 2013-10-28 21:14:12

这是我过去用过的:

代码语言:javascript
复制
<?php
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
  foreach ($row as $x) {
    // ...
  }
}
?>

它依次检索每一行并循环遍历以输出结果。

使用mysql_fetch_assoc只返回一个关联数组,减少数组中的重复值。

票数 3
EN

Stack Overflow用户

发布于 2013-10-28 21:17:18

PHP手册:

mysql_fetch_array(resource $result [, int $result_type = MYSQL_BOTH ])

返回一个字符串数组,该数组对应于获取的行,如果没有更多行,则返回FALSE。返回数组的类型取决于如何定义result_type。通过使用MYSQL_BOTH (默认),您将得到一个具有关联索引和数字索引的数组。使用MYSQL_ASSOC,您只获得关联索引(因为mysql_fetch_assoc()工作),使用MYSQL_NUM只获得数字索引( mysql_fetch_row()工作)。

所以你应该写这个:mysql_fetch_array($result, MYSQL_ASSOC)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19645124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档