2016-09-18 63 views
0

假設我在MySQL數據庫中有一個名爲'Users'的表,並且該表有兩列,分別稱爲'用戶名'和'密碼'。有一次,我想獲取所有的用戶名,而不需要密碼。我所做的是:獲取一列的所有條目

$query = mysql_query("SELECT Username FROM Users"); 
$result = mysql_fetch_array($query); 
foreach($result as $r){ 
    echo $r; 
} 

現在,我只有兩個項目在我的用戶表,讓我們說,他們只是「用戶1」和「用戶2」。從上面的代碼,而不是向我展示他們,只是顯示第一個用戶。我無法理解爲什麼發生這種情況或如何解決這個問題。我也嘗試在最後加入WHERE 1來改變查詢,但我得到了相同的結果。

另一方面,當我在PhpMyAdmin中運行此查詢時,它將返回User1和User2。

任何想法?謝謝。

+0

查詢沒有任何問題。 'mysql_fetch_array'一次返回一行,你需要迭代它。 – algrebe

+0

每次在_meow_代碼中使用[mysql_'](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) 數據庫擴展代碼 ** [一隻小貓被勒死在世界某個地方](http://2.bp.blogspot.com/-zCT6jizimfI/UjJ5UTb_BeI/AAAAAAAACgg/AS6XCd6aNdg/s1600/luna_getting_strangled.jpg)**它被棄用,並且已經存在了很多年,並且已經消失了永遠在PHP7中。 如果您只是學習PHP,請花些精力學習'PDO'或'mysqli'數據庫擴展。 [從這裏開始](http://php.net/manual/en/book.pdo.php) – RiggsFolly

回答

1

看到這裏這個聲明,

$result = mysql_fetch_array($query); 

你從結果集只讀取一行。遍歷結果使用set while()循環來顯示所有的用戶名,這樣的:

$query = mysql_query("SELECT Username FROM Users"); 
while($result = mysql_fetch_array($query)){ 
    echo $result['Username'] . '<br />'; 
} 

旁註:不要使用mysql_數據庫擴展,他們在PHP 5.5.0已過時,在被拆除PHP 7.0.0。改爲使用mysqliPDO擴展名。這是why you shouldn't use mysql_* functions