2013-02-22 31 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); 

...你应该得到你想要的结果。