2012-04-29 165 views
2

我想輸出數據到一個xml文件,一切工作正常,除了它只保存最後一個記錄提取。mysql row into while使用while循環

下面的查詢使用:

$query = mysql_query("SELECT mileage FROM cars WHERE make ='bmw' ORDER BY date DESC, time DESC LIMIT 3"); 
while ($row = mysql_fetch_array($query)){ 
$result = $row['mileage']; 
} 

我的問題是我如何使它所以每個記錄保存在單獨的3個變量,這樣我可以輸出的3個變量到XML文件。我也試圖只抓取最後3個日期和上次排序的最後3行,因此不確定查詢是否正確。

謝謝。

回答

0

您可以使用folowing;

$query = mysql_query("SELECT mileage FROM cars WHERE make ='bmw' ORDER BY date DESC, time DESC LIMIT 3"); 
while ($row = mysql_fetch_array($query)){ 
$result[] = $row['mileage']; 
} 

您可以foreach $結果並構建您的xml。

+0

哇,謝謝你的工作完美。 –

0

嘗試將輸出保存爲數組。

$array[]=$value; 

將推動$ array數組內的$值。

-1

讓自己的功能

function dbGetCol($sql){ 
    $ret = array(); 
    $res = mysql_query($sql) or trigger_error(mysql_error()." ".$sql); 
    if ($res) { 
    while($row = mysql_fetch_row($res)){ 
     $ret[] = $row[0]; 
    } 
    } 
    return $ret; 
} 

,然後叫它

$data = dbGetCol("SELECT mileage FROM cars WHERE make ='bmw' ORDER BY date DESC, time DESC LIMIT 3"); 
+0

謝謝,我想我會在下次使用這個。 –

+0

大聲笑。你下次正在談論什麼?如果你不知道什麼是函數和如何使用它 - 只要說,不需要猶豫:) –

1

首先:不要使用mysql_ *功能!它們已過時,您應該使用PDO

其次:最簡單的事情就是構建一個包含結果的數組。

$result = array(); 
$query = mysql_query("SELECT mileage FROM cars WHERE make ='bmw' ORDER BY date DESC, time DESC LIMIT 3"); 
while ($row = mysql_fetch_array($query)){ 
    $result[] = $row['mileage']; 
} 

您的查詢的結果現在被包含在$result[0]$result[1]$result[2]。 (如果使用PDO,代碼看起來不會很大)

+0

謝謝,是啊它現在正在使用$ result [0],$ result [1]和$ result [2 ]。 –

1
$result=array(); 
$query = mysql_query("SELECT mileage FROM cars WHERE make ='bmw' ORDER BY date DESC, time DESC LIMIT 3"); 
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
$result[] = $row['mileage']; 

}