我真的很想在下面的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);更新
Mark B提供的新代码
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”问题仍然发生在或不存在:
mysql_data_seek($fetch, 0);因为这似乎没什么用。
任何帮助都会很好!
解决了
由于Mark B指出问题可能在数据库中而不是PHP中,所以原来有一个字符“潜伏在本应存在的地方”。这导致信息显示为'null‘。
发布于 2011-05-16 19:45:55
$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()循环。
发布于 2011-05-16 19:45:00
尝试删除对mysql_data_seek的调用。我看不出为什么MySQL指针不会在第一次调用mysql_fetch_array时指向第一行。
发布于 2011-05-16 19:46:55
您可以尝试删除mysql_data_seek($fetch,0);因为如果您刚刚进行了查询,指针将位于第一条记录上。
https://stackoverflow.com/questions/6022435
复制相似问题