2011-05-16 41 views
0

我真的很喜歡一些幫助,下面的MySQL/PHP的問題(也許錯誤?)首先返回值是爲「空」時,它有一個值

我試圖檢索和使用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); 

UPDATE

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); 

注:

作爲顯得無能爲力

mysql_data_seek($fetch, 0); 

的「空」問題仍然存在有或無。

任何幫助將是偉大的!

解決

感謝Mark B誰指出,這個問題很可能在數據庫中,而不是PHP,原來有字符'潛伏那裏應該是一個」。這導致信息顯示爲「空」。

+0

你爲什麼使用seek?它在開始時已經是0了?是的,使用'或死(mysql_error());' – 2011-05-16 19:47:20

+0

我不認爲你需要mysql_data_seek()函數,因爲mysql_query()應該返回結果集的指針已經在0。如果在迭代完成後重複使用相同的數據集(例如在while循環中),則應該只需要這樣做。 – 2011-05-16 19:47:26

回答

4
$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()循環。

+1

+1,用於書寫我要寫的內容,並節省我的打字時間! – 2011-05-16 19:46:53

+0

damm擊敗我 – mcgrailm 2011-05-16 19:48:23

+0

非常感謝您的意見,我已經嘗試了上面的代碼,並刪除了'seek',但我仍然得到相同的結果。 – thathurtabit 2011-05-16 20:42:27

0

嘗試刪除對mysql_data_seek的呼叫。我沒有看到爲什麼MySQL指針在第一次調用mysql_fetch_array時不會指向第一行。

0

你可以嘗試刪除mysql_data_seek($ fetch,0);因爲如果您剛剛進行查詢,指針將已經在第一條記錄上。

相關問題