首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我的PHP有一个值时,它的第一个值作为'null‘返回

问当我的PHP有一个值时,它的第一个值作为'null‘返回
EN

Stack Overflow用户
提问于 2011-05-16 19:38:50
回答 3查看 3K关注 0票数 0

我真的很想在下面的MySQL / PHP问题上提供一些帮助(也许是bug?)

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

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

代码语言:javascript
复制
"Example 1", "Example 2", "Example 3"...

php回显如下:

代码语言:javascript
复制
"null", "Example 2, "Example 3"

我想这将是一个常见的问题,但我还没有在互联网上找到所需的信息,所以我希望你们能帮上忙。

我的PHP

代码语言:javascript
复制
/* 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);

更新

Mark B提供的新代码

代码语言:javascript
复制
if ($conn)
{
$sql = "SELECT column_name FROM table WHERE comment_approved = '1' "; 
$query = mysql_query($sql) or die(mysql_error());

$result = array();
while ($row = mysql_fetch_assoc($query)) {
    $result[] = $row['column_name'];

}

}

/* Free connection resources. */
mysql_close($conn);

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

注:

“null”问题仍然发生在或不存在:

代码语言:javascript
复制
 mysql_data_seek($fetch, 0);

因为这似乎没什么用。

任何帮助都会很好!

解决了

由于Mark B指出问题可能在数据库中而不是PHP中,所以原来有一个字符“潜伏在本应存在的地方”。这导致信息显示为'null‘。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-16 19:45:55

代码语言:javascript
复制
$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()循环。

票数 4
EN

Stack Overflow用户

发布于 2011-05-16 19:45:00

尝试删除对mysql_data_seek的调用。我看不出为什么MySQL指针不会在第一次调用mysql_fetch_array时指向第一行。

票数 0
EN

Stack Overflow用户

发布于 2011-05-16 19:46:55

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

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

https://stackoverflow.com/questions/6022435

复制
相关文章

相似问题

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