2013-02-22 30 views
-2

我有這個腳本的麻煩,我希望任何位置:PHP和mysql_fetch陣列

<? php 

//ini_set('display_errors', '1'); 

//MQSQL connection 
require_once('../../include/init.phph'); 

function transportQueue(){ 
//siteinfoDbCon(); 
siteinfoDbConNoLag(); 

$query = "SELECT 
     a.transport_id, a.site_id, b.site_name, c.name as 'From DC', 
     d.name as 'To DC', a.cutover, a.working, a.error 
     FROM transport_queue a 
     INNER JOIN sites b ON(a.site_id=b.site_id) 
     INNER JOIN datacenters c ON(a.from_dc_id=c.datacenter_id) 
     INNER JOIN datacenters d ON(a.to_dc_id=d.datacenter_id) 
     WHERE 
     a.cutover BETWEEN NOW() AND ADDDATE(NOW(), INTERVAL 7 day) 
     ORDER BY a.cutover"; 

//Pull results 
$results=mysql_query($query); 

//Return into an array $transports 
while($row=mysql_fetch_array($results,MYSQL_BOTH)){ 
    $transports[]=$row; 
    print_r($transports[0]["site_id"]); 
} 

//Free up the results 
mysql_free_result($results); 

//Close the db connection 
siteinfoDbClose(); 

} 
transportQueue(); 
?> 

我可以證實,查詢作品和數據庫連接的工作......我不知所措。我想將結果返回到關聯數組。我做檢查以下提問/回答:Dump mysql_fetch_array results into a multidimensional array

試圖

有什麼想法?

+7

什麼問題?什麼不工作?那個'print_r'打印了什麼? – 2013-02-22 18:48:00

+4

你想完成什麼,發生了什麼? – DiMono 2013-02-22 18:48:51

+3

你問了一個問題,但沒有說明問題... – Nick 2013-02-22 18:49:06

回答

1

while($row=mysql_fetch_array($results,MYSQL_BOTH)){ 
    $transports[]=$row; 
    print_r($transports[0]["site_id"]); 
} 

替換此

$transport = array(); 
while($row=mysql_fetch_assoc($results)) 
    $transports[]=$row; 

print_r($transports); 

,它的時間移動到庫MySQLi http://www.php.net/manual/en/book.mysqli.php

+0

這些建議很好,但原始代碼應該仍然按原樣運行。 – 2013-02-22 18:55:37

0

這條線:

print_r($transports[0]["site_id"]); 

...一直在尋找在第一行傳輸中的單個值['siteid'],而不是數組。把它拉出來,然後在循環結束後運行:

print_r($transports); 

...你應該得到你想要的結果。