2013-02-22 1 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(); 
?> 

Я могу подтвердить, что работы запроса и соединения работы DB ... Я в растерянности ,

Я пытаюсь вернуть результаты в ассоциативный массив. Я сделал обзор следующий вопрос/ответ: Dump mysql_fetch_array results into a multidimensional array

Пытаюсь

Любые мысли?

+7

В чем проблема? Что не работает? Что печатает 'print_r'? –

+4

Что вы пытаетесь сделать, и что происходит вместо этого? – DiMono

+3

Вы задали вопрос, но не задали вопрос ... – Nick

ответ

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

Это хорошие предложения, но исходный код должен по-прежнему работать как есть. –

0

Эта линия:

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

... всегда ищет при единственном значении ['siteid'] в первой строке транспортов, а не в массиве. Вытащите его, а затем после цикла закончится запускаю это:

print_r($transports); 

... и вы должны получить результаты вы после этого.