PHP数组的第一个值返回为';空';当它有一个值时

PHP数组的第一个值返回为';空';当它有一个值时,php,mysql,Php,Mysql,我真的很想得到一些关于以下MySQL/PHP问题的帮助(可能是bug?) 我试图使用MySQL/PHP从数据库中检索和显示一个数据数组,但当我回显该数组时,它将第一个值返回为“null” 因此,即使数据库具有以下信息: "Example 1", "Example 2", "Example 3"... php回应道: "null", "Example 2, "Example 3" 我想这可能是一个常见的问题,但我还没有设法在互联网上的其他地方找到所需的信息,所以我希望你们这些善良的人能提供帮助

我真的很想得到一些关于以下MySQL/PHP问题的帮助(可能是bug?)

我试图使用MySQL/PHP从数据库中检索和显示一个数据数组,但当我回显该数组时,它将第一个值返回为“null”

因此,即使数据库具有以下信息:

"Example 1", "Example 2", "Example 3"...
php回应道:

"null", "Example 2, "Example 3"
我想这可能是一个常见的问题,但我还没有设法在互联网上的其他地方找到所需的信息,所以我希望你们这些善良的人能提供帮助

我的PHP

/* If connection to database, run sql statement. */
if ($conn) {
    $fetch = mysql_query("SELECT column FROM table WHERE approved = '1' ");

    // declare empty array to fill later
    $result = array();

    // make sure the MySQL pointer is looking at the first row
    mysql_data_seek($fetch, 0);


    while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {

        foreach ($row as $value) {

            $row_array = $value;

            // push info into new array with just the value
            array_push($result, $row_array);
        }
    }
}
/* Free connection resources. */
mysql_close($conn);

/* Toss back results as json encoded array. */
echo json_encode($result);
更新

新代码由以下人员提供:

注意:

无论是否使用以下选项,“null”问题仍会出现:

 mysql_data_seek($fetch, 0);
因为这似乎没有什么作用

任何帮助都会很好

已解决


多亏了who指出问题可能出在数据库而不是PHP中,结果是这个字符“潜伏在应该存在错误的地方”。这导致信息显示为“null”。

请尝试删除对
mysql\u data\u seek
的调用。我看不出为什么MySQL指针在第一次调用
MySQL\u fetch\u array

时没有指向第一行,请尝试删除对
MySQL\u data\u seek
的调用。我看不出为什么MySQL指针在第一次调用
MySQL\u fetch\u array
时不会指向第一行

$sql = "SELECT column FROM table WHERE approved = '1'";
$result = mysql_query($sql) or die(mysql_error());

$data = array();
while($row = mysql_fetch_assoc($result)) {
    $data[] = $row['column'];
}

echo json_encode($data);
您不应该进行搜索,因为您当时没有对结果进行任何操作。由于只从数据库中获取一列,因此也不需要内部foreach()循环


您不应该进行搜索,因为您当时没有对结果进行任何操作。由于您只从数据库中获取一列,因此也不需要内部foreach()循环。

您可以尝试删除mysql\u data\u seek($fetch,0);因为如果您刚刚进行了查询,指针将已经位于第一条记录上。

您可以尝试删除mysql\u data\u seek($fetch,0);因为如果您刚刚进行了查询,指针将已经位于第一条记录上。

+1用于编写我将要编写的内容并保存键入内容!非常感谢您的输入,我已经尝试了上面的代码,也删除了“seek”,但仍然得到相同的结果。您可能需要查看数据库中的数据。在mysql监视器中手动运行查询。PHP不会创建空条目,除非数据来自带有空值的查询。我在PHPMyAdmin中,运行上述SQL查询会产生10个结果,所有这些结果都有正确的信息,但是在网站上运行时会产生10个结果,但第一个结果是“null”:/我们在这里谈论的是什么样的数据?除了过大的blob和可能已损坏的unicode文本之外,我想不出任何东西会导致mysql和/或php以如此简单的方式将字段数据转换为“null”。+1用于编写我将要编写的内容并保存键入内容!非常感谢您的输入,我已经尝试了上面的代码,也删除了“seek”,但仍然得到相同的结果。您可能需要查看数据库中的数据。在mysql监视器中手动运行查询。PHP不会创建空条目,除非数据来自带有空值的查询。我在PHPMyAdmin中,运行上述SQL查询会产生10个结果,所有这些结果都有正确的信息,但是在网站上运行时会产生10个结果,但第一个结果是“null”:/我们在这里谈论的是什么样的数据?除了过大的blob和可能已损坏的unicode文本之外,我想不出任何东西会导致mysql和/或php以如此简单的方式将字段数据转换为“null”?开始时已为0?是的,使用
或die(mysql_error())我认为您不需要mysql\u data\u seek()函数,因为mysql\u query()应该返回指针已经为0的结果集。只有在重复使用相同的数据集(就像在while循环中一样)时,才需要它。为什么要使用seek?开始时已为0?是的,使用
或die(mysql_error())我认为您不需要mysql\u data\u seek()函数,因为mysql\u query()应该返回指针已经为0的结果集。只有在重复使用相同的数据集(就像在while循环中一样)之后,才应该真正需要它。
$sql = "SELECT column FROM table WHERE approved = '1'";
$result = mysql_query($sql) or die(mysql_error());

$data = array();
while($row = mysql_fetch_assoc($result)) {
    $data[] = $row['column'];
}

echo json_encode($data);