2013-01-22 17 views
-1

对不起Q的轻微重叠,但我认为现在以前的答案是贬值(我已经看到了,在PHP 5.3,你需要使用MySQLi_fetch_array())并使阵列

我使用jpgraph并试图从MySQL数据库中提取数据。我有下面的代码,它拉出我需要的数字,当我回应结果时,它逐个吐出答案没有问题,但它不会将它放入数组中。

我试图取代线是

$ydata = array(1,2,3,4,5,6,7); 


//query 
$sql = "SELECT CONCAT('Week ', WEEK(TimeofCompletion) , ' ', YEAR(TimeofCompletion)) AS Week, Count(*) AS VolumeOfAnswers 
FROM table01 
GROUP BY WEEK(TimeofCompletion) , YEAR(TimeofCompletion) 
ORDER BY TimeofCompletion"; 

$ydata = array(); 

while($row = mysql_fetch_array($sql)){ 
// Create a temporary array 
$temp = array(); 

$temp[] = "".$row['VolumeOfAnswers'].""; 
$ydata = '['. implode(', ', $temp) . ']'; 
} 

任何建议,我怎么会得到按行输出到一个数组?

问候 Maudise

回答

0
$temp[] = "".$row['VolumeOfAnswers'].""; //what this suppose to do? 

我想,你希望我身边的报价会增加内部

$temp[] = "'".$row['VolumeOfAnswers']."'"; 

单引号,否则你不需要双引号在所有所以我会删除它们。之后你的数组将保存来自数据库的值。

根据documentationmysql_fetch_array已弃用,您应该使用PDO或MySQLi。但如果你仍然想使用它,我建议使用mysql_fetch_assoc来代替。

现在这样一个问题:

while($row = mysql_fetch_array($sql)){ 
    // Create a temporary array 
    $temp = array(); 

    $temp[] = "".$row['VolumeOfAnswers'].""; 
    //why is this here? should be outside of while loop shouldnt it? 
    $ydata = '['. implode(', ', $temp) . ']'; 
} 

您$ YDATA总是被覆盖,并拥有唯一的$临时数组的最后一个元素。或者移动while循环之外的$ ydata或使用array_merge($ydata, $temp);

+0

[编辑添加为答案] – Maudise

+0

嗨,由于某种原因,它告诉我数组是空的?我遇到的其他错误是它无法定义最小/最大值,这意味着我认为它将它读为字符串变量而不是数字。有任何想法吗? – Maudise