2013-03-12 48 views
0

我有一个MySQL表中有数据,我需要使用更基本的格式。管理MySQL提取数组

有ID号,日期,油,气和电的价值。

我可以做一个mysql_fetch_array,它带回了我需要的所有值,但我需要查看它们的格式,以便与javascript图表一起使用。他们需要的格式如下:

$data = array(array("6/22/2009",425.32),array("6/8/2009",424.84),array("5/26/2009",417.23),array("5/11/2009",390)); 

正如你所看到的,我需要日期和油的价值。然后我需要创建另一个包含日期和电气值的数组,最后是数据和气体值。

我不知道如何从mysql_fetch_array获取数据并将其添加到数组,如上所示。谁能帮忙?

+0

你可以发布你的代码吗? – 2013-03-12 10:16:19

回答

2

您只需通过[]语法追加它:

$data = array('oil' => array(), 'gas' => array(), 'electric' => array()); 
while ($row = mysql_fetch_assoc($result)) { 
    $data['oil'][$row['date']] = $row['oil']; 
} 

这假定选定的日期是唯一的为好。


顺便说一下,您应该避免在新代码中使用mysql_*函数。

0

试试这个..

$finalArray=array(); 
while ($row = mysql_fetch_array($result)) 
{ 
    $data=array(); 
    $data[] = $row['date']; 
    $data[] = $row['oil']; 
    $finalArray[]=$data; 
} 
print_r($finalArray); //This will print your values in required fromat. 
0

感谢您的帮助。我已经修改了我的代码阅读本:

$oil = array('oil' => array()); 
$result=mysql_query(" SELECT * FROM energyprices"); 
while ($row = mysql_fetch_assoc($result)) { 
$oil[$row['pDate']]['oil'] = $row['oil']; 
} 

当我print_r的数据,它看起来是这样的:

Array ([oil] => Array () [2004-01-01] => Array ([oil] => 29.73) [2004-01-02] => Array ([oil] => 29.73)); 

我需要它的格式是:

$oil = array(
array("6/22/2009",425.32), 
array("6/8/2009",424.84), 
array("5/26/2009",417.23)); 

谢谢!

1

你需要使用“数字阵列”:

$result = mysql_query(" SELECT date, oil FROM energyprices"); 
    $i = 0; 
    while($row = mysql_fetch_array($result, MYSQL_NUM)) 
    { 
     $oil[$i] = array($row[0], $row[1]); 
     $i++; 
    } 

纠正我,如果我没有理解你的问题,我会相应地修改我的答案。