2013-01-08 123 views
-1

取在PHP數組元素的確切數目我有一個數據庫表被叫用戶只有在它的一個條目。做好連接後,我這樣做無法從SQL數據庫

function dbQuery($sql) 
    { 
    $result = mysql_query($sql) or die(mysql_error()); 

    return $result; 
    } 

這運行收到的查詢。然後

function getUser(){ 
    $sql = "select username from user"; 
    return dbQuery($sql); 
} 

現在我把這個getUser()功能來獲取用戶名

while($row=mysql_fetch_array(getUser())){ 
    echo($row['username']); 
    } 

的問題是,它打印的用戶名無限。請幫助

+0

的mysql_query已經過時!嘗試使用mysqli_query()。 http://de2.php.net/manual/en/mysqli.query.php – derWilly

回答

1
while($row=mysql_fetch_array(getUser())){ 

的這種執行是:

  1. 呼叫getUser
  2. 呼叫mysql_fetch_array的結果
  3. 分配結果$row
  4. 重複從1

你一遍遍呼喚getUser(),得到一個新的結果集每次。調用一次並將結果保存到變量中。

+0

'$行= mysql_fetch_array(的getUser()); 而($行){ \t回波($行[ '用戶名']); }' 我試過,但沒有影響 –

+0

請看看如何使用這些功能的一個真實的例子:http://www.php.net/mysql_fetch_array。請注意頁面頂部的大型閱讀框。 – deceze

-1

,因爲你只需要一個行作爲結果,考慮使用 和mysql_fetch_row();

$row = mysql_fetch_row(getUser()); 

這將返回$行中的數組與該行的字段。

無論如何,如果你仍然想使用mysql_fetch_array(),不要忘記通過第二個參數的結果類型數組(MYSQL_ASSOC,MYSQL_NUM,或MYSQL_BOTH)

while ($row = mysql_fetch_array(getUser(), MYSQL_NUM)) { 
    echo($row[0]); 
} 
0

的問題是,你」重新調用getUser(),它在循環中重新生成結果。

此代碼將做的東西:

$row=mysql_fetch_array(getUser()); 
echo $row['username']; 

MySQL擴展已被棄用,從而考慮遷移到不同的一個按derWilly的評論