php - MySQL/PHP mysql_fetch_array() 始终丢失第一行

标签 php mysql arrays row fetch

大家晚上好!

出于某种原因,Database::fetchArray() 正在跳过查询结果集的第一个 $row。

它正确打印所有行,只是由于某种原因丢失了第一行,我认为我的 fetchArray() 函数有问题?

我在 phpMyAdmin 中运行查询,它返回 4 行,当我在本地主机上使用 php 文件(下面的代码)尝试它时,它只打印 3 行,当然使用相同的“WHEREunes.riddim”值。谷歌上大多数类似的主题表明,一个常见的错误是在 while() 之前使用 mysql_fetch_array() ,这会将指针设置在前面并导致第一行丢失,不幸的是我只有一个 mysql_fetch_array() 调用(在while()-head)。

<?php 

    $db->query("SELECT " .
                "riddims.riddim AS riddim, " .
                "riddims.image AS image, " .
                "riddims.genre AS genre, " .
                "tunes.label AS label, " .
                "tunes.artist AS artist, " .
                "tunes.tune AS tune, " .
                "tunes.year AS year," .
                "tunes.producer AS producer " .
                "FROM tunes " . 
                "INNER JOIN riddims ON tunes.riddim = riddims.riddim " .
                "WHERE tunes.riddim = '" . mysql_real_escape_string(String::plus2ws($_GET['riddim'])) . "'" .
                "ORDER BY tunes.year ASC");

    $ar = $db->fetchArray();

    for($i = 0; $i < count($ar) - 1; $i++)
    {
        echo $ar[$i]['riddim'] . " - " . $ar[$i]['artist'] . " - " . $ar[$i]['tune'] . " - " . $ar[$i]['label'] . " - " . $ar[$i]['year'] . "<br>";
    }

?>

Database::fetchArray() 看起来像:

public function fetchArray()
{

    $ar = array();

    while(($row = mysql_fetch_array($this->result)) != NULL)
        $ar[] = $row;

    return $ar;
}

任何建议表示赞赏!

最佳答案

您应该从 for 循环中删除 -1

关于php - MySQL/PHP mysql_fetch_array() 始终丢失第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12378884/

相关文章:

php - SELECT 中带有 CASE 的 SQL 查询不起作用

PHP:MySQL 错误钩子(Hook)?

mysql - 检索表中不存在的行

php - PDO无参数绑定(bind)sql错误

c# - SQL Server 的 IP 地址连接字符串

c - 尝试将变量分配为 C 中数组的长度

javascript - 我怎样才能在点击输入时获得输入字段值

php - 根据点从一张表中找出一对记录

c++ - 使用数组查找 HCF,得到未知输出 (C++)

python - 如何存储cascaded_union的坐标