2012-11-06 20 views
0

通常還沒有做到這一點很多,但我的過程中似乎沒有這個時間正常工作,所以我要求一些澄清加載MySQL調用到陣列

這適用於在查詢中的單個項目:

$query="SELECT data1 as product FROM Products ORDER BY Title"; 
    $result = mysql_query($query) 
     or die("Query failed -".$query);   
    $rows=array(); 
    while($row = mysql_fetch_array($result, MYSQL_BOTH)) { 
     $rows[] = $row; 
    } 

正如我所說的返回單個項目的所有項目的查詢中返回數組中的最後一個名爲$行

$query="SELECT data1 as product, data2 as info FROM Products ORDER BY Title"; 
    $result = mysql_query($query) 
     or die("Query failed -".$query);   
    $i=0; 
    $data1=array(); 
    $data2=array(); 

    while($row = mysql_fetch_array($result, MYSQL_BOTH)) { 
     $data1[$i] = $row[0]; 
     $data2[$i++] = $row[1]; 
    } 

這似乎並不做這工作正常同樣的事情,否則我錯過了什麼

我錯過了什麼嗎? 如果沒有,那麼我需要看看別的事情是我的問題,但需要確保這一點。

我期望的結果是兩個數組,一個包含來自查詢結果的所有第一項,第二個數組包含來自查詢結果的所有第二項。

+1

'mysql_ *'函數已被棄用。改用mysqli或PDO。 – NullUserException

+0

我建議使用[PDO](http://www.php.net/manual/en/book.pdo.php)或[MySQLi](http://www.php.net/manual/en/book。 mysqli.php),因爲舊的[mysql_函數被折舊](http://www.php.net/manual/en/function.mysql-query.php)。 PDO有一個自己的[查詢](http://www.php.net/manual/en/pdo.query.php)方法,並在該鏈接中包含您想要執行的操作。 – Stu

+0

@Stu'棄用'。 「折舊」意味着別的東西。 – NullUserException

回答

0
$query="SELECT data1 as product, data2 as info FROM Products ORDER BY Title"; 
$result = mysql_query($query) 
    or die("Query failed -".$query);   
$i=0; 
$data1=array(); 
$data2=array(); 

while($row = mysql_fetch_array($result, MYSQL_BOTH)) { 
    $data1[$i] = $row[0]; 
    $data2[$i] = $row[1]; 
    $i++; 
} 
+1

如果你打算這樣做,你根本不需要'$ i'。只需將項目推入數組,例如:'$ data [] = $ row [0]'等等 – sgroves

2

嘗試:

$row = array(); 
while($row[] = mysql_fetch_array($result, MYSQL_BOTH)) {} 

而且,如前所述,使用庫MySQLi或PDO。 mysql_ *已被棄用。