2012-08-09 54 views
0

我有這樣的功能:轉換PHP的MySQL結果到一個數組

public function get_all_sites($niche){ 
    $query="SELECT * 
      FROM sites AS site 
      INNER JOIN niche AS n ON n.niche_id=site.niche_id 
      INNER JOIN review AS r ON r.site_id=site.site_id 
      WHERE n.niche_id=".$niche; 
    $results=mysql_query($query) or die(mysql_error()); 

    while($rows[] = mysql_fetch_assoc($results)); 

    return $rows; 
} 

我想要做的是所有行轉換爲關聯數組中一氣呵成,並將其返回。由於返回的值很多,我不想使用任何推式函數或編寫這樣的代碼:$ new_array ['id'] = $ row ['id'] ;.較短的代碼更好。

好的,連接錯誤消失了。我怎樣才能輸出獲得的所有行作爲一個數組出mysql_fetch_assoc沒有從循環中獲取的結果

+0

**'mysql' **'_query' vs **'mysqli' **'_fetch_assoc'。兩種不同的擴展。我建議完全切換到mysqli或PDO,並單獨離開舊的'mysql_ *'函數。 – DCoder 2012-08-09 07:30:28

+0

好吧,我趕緊完成這個網站..所以我會堅持mysql – 2012-08-09 07:32:54

+2

請不要使用'mysql_ *'功能的新代碼。他們不再被維護,社區已經開始[棄用流程](http://goo.gl/KJveJ)。請參閱[**紅框**](http://goo.gl/GPmFd)?相反,您應該瞭解[準備好的語句](http://goo.gl/vn8zQ)並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能決定,[本文](http://goo.gl/3gqF9)將有助於選擇。如果你關心學習,[這是一本很好的PDO教程](http://goo.gl/vFWnC)。 – PeeHaa 2012-08-09 07:37:29

回答

0

錯誤:

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, 
resource given in C:\Program Files (x86)\Zend\Apache2\htdocs\bestMatch 
\sandbox\models\SitesDB.php on line 19 

意味着有什麼不對您的SQL或服務器ISN」能夠執行它。我建議你迴應一下,並確保查詢可以提供結果。

在這種情況下,你似乎在混合mysql_和mysqli_函數?你是否讓mysqli_連接能夠返回關聯的數組?

編輯:

基於此評論「好了,我急於完成這個site..so我會堅持到mysql」,嘗試添加到您的功能有關聯嗎?看看example 1,並確保你有步驟覆蓋。

+0

迴應什麼?,,,,,,,,,,,,,,,,,,,,看到更新 – 2012-08-09 07:31:13

+0

@DmitryMakovetskiyd通常,如果我確定我的連接是好的,我會回聲SQL,看看哪裏在這種情況下,錯誤是,似乎你試圖錯誤地使用兩組函數。 'mysql_ *'和'mysqli_ *'不要混合。 – Fluffeh 2012-08-09 07:33:25

+0

我注意到..我的錯..見更新 – 2012-08-09 07:35:34