2011-10-06 71 views
0

如果我需要選擇,並在數據庫中使用一個表中的每個元素的信息的程序是這樣的:如何將mySql查詢的結果索引爲數組數組?

$query = "...mySql query..."; 
$query_result = mysql_query($query) or die (mysql_error()); 

然後,如果我想訪問的結果,我將使用功能mysql_fetch_array領域( )像這樣訪問他們:

$query_result_array = mysql_fetch_array($query_result); 
echo $query_result_array['field_1']; 
.... 
echo $query_result_array['field_i']; 
.... 

但是,由於更多的元素可以由查詢返回,我想訪問的每一個他們與索引爲0到mysql_num_rows($ query_result數組)。

作爲一個例子:

echo $query_result_array['field_i'][0]; 
.... 
echo $query_result_array['field_i'][mysql_num_rows($query_result)]; 

應該打印的表的每個選定元素字段i的值。

有沒有一個功能可以幫我完成工作? 如果沒有,關於如何做的建議?

在此先感謝您的幫助。

回答

1

這可能是一種替代

$res = mysql_query("..SQL..."); 
$arr = array(); 
while ($row = mysql_fetch_assoc($res)) { 
    $arr[] = $row; 
} 
var_dump($arr); 

或者

$res = mysql_query("..SQL..."); 
for 
(
    $arr = array(); 
    $row = mysql_fetch_assoc($res); 
    $arr[] = $row 
); 
var_dump($arr); 
+0

什麼時候while循環結束? – Matteo

+0

從SQL查詢中提取所有結果後。當'mysql_fetch_assoc'返回'false'時意味着沒有更多的行,然後退出。 – Ergec

+0

我明白了,謝謝! – Matteo

1

我不認爲有這樣的方法;你必須自己做。

1

嘗試的東西,如:

$res = mysql_query("..mySql query..."); 
$arr = array(); 
while ($row = mysql_fetch_assoc($res)) { 
    $query_result_array[] = $row; 
} 

,那麼你訪問喜歡你的數據:

echo $query_result_array[0]['field_i']; 
1

基於2個以前的答案,這些作者假設通常SO筆者熟悉這樣的事,作爲創建功能

function sqlArr($sql) { return an array consists of 
    $ret = array(); 
    $res = mysql_query($sql) or trigger_error(mysql_error()." in ".$sql); 
    if ($res) { 
    while ($row = mysql_fetch_assoc($res)) { 
     $ret[] = $row; 
    } 
    } 
    return $ret; 
} 

$array = sqlArr("SELECT * FROM table"); 
foreach ($array as $row) { 
    echo $row['name'],$row['sex']; 
} 

這導致陣列具有從你問不同的結構,但它的方式更方便的太。 如果你仍然需要你的不尋常的一個,你必須告訴你如何使用它