2010-06-29 101 views
0

很久以前,我已經使用我的服務器來測試PHP & MySQL應用程序。MySQL僅從查詢結果返回{第一行}!

突然,當我嘗試在任何數據庫中的任何表上執行任何查詢時,我只得到查詢結果中的第一行!

我檢查了配置文件,並沒有看到有什麼奇怪的。

操作系統:Linux/Ubuntu的10.04 64位服務器版, 的Web服務器:Apache/2.2.14, MySQL的客戶:5.1.41, MySQL服務器:5.1.41-3ubuntu12.3(Ubuntu的)

而且,我肯定,這是我的PHP代碼沒有錯誤,而當我使用phpMyAdmin,我通常得到所有行!

問題出在哪裏?

+7

無論如何都想向我們展示代碼?以防萬一? – 2010-06-29 20:50:07

+0

+1,代碼請問,mysql_num_rows()返回什麼? – user375700 2010-06-29 20:51:05

+4

>>而且,我確信我的PHP代碼沒有錯誤,而當我使用phpMyAdmin時,我通常會得到所有行! 我喜歡這一行 – iBiryukov 2010-06-29 20:53:18

回答

7

如果你發佈了你的代碼,這將有所幫助,但我猜你的代碼沒有獲取每一行的循環。

<?php 

$Result = mysql_query($Query); 

while($Row = mysql_fetch_assoc($Result)) //keep going while there are more rows 
{ 
    print_r($Row); 
} 

mysql_fetch_accoc和mysql_fetch_array功能僅在時間(連續)返回一行,所以你需要運行它們的每一行。

+1

+1我輸入了類似的答案。這是我第一次猜測,沒有看到代碼。 – 2010-06-29 20:58:48

+0

..當循環完成時,取回已經返回所有行嗎?我的意思是...如果mysql_num_rows($ result)返回4,while循環會運行4次還是無限次? – Hristo 2010-06-30 16:12:15

+0

當沒有更多行時,mysql_fetch_accoc將返回FALSE。所以循環將繼續前進,直到它讀取了4行(在這種情況下),然後結束。 http://php.net/manual/en/function.mysql-fetch-assoc.php – Kewley 2010-06-30 16:26:14

6

問題與您的代碼。你剛剛告訴我們phpMyAdmin從MySql中返回的很好,很顯然MySql服務器不是問題,也不是PHP服務器設置的任何部分。

你的代碼是錯誤的,你可能(在你的超級機密和完美的代碼中)在你的staement中有一個限制1,或者因爲你不知道mysql_fetch函數是如何工作而不正確地抓取行。

因爲我是一個sn j的混蛋,但是不管怎麼樣,都不贊成我。