对于这个愚蠢的问题抱歉,但我遇到了一个奇怪的问题。用于处理php 5.2的代码,但我已经移动到5.5并且它无法正常工作。
无论如何,我试图从数据库中检索数据并推入一个数组。查询显示正确的数据但不在数组中工作。 这是我的代码
$data = array();
$mm = array();
$m = array();
$y = array();
$years = array();
$f = array();
$facts = array();
$i = 0;
$g = array();
$groups = array();
$r = array();
$regions = array();
$import = array();
$imports = array();
$colcount = 0;
$sumunits=0;
$sumvalue=0;
$sumasp=0;
while($d = mysql_fetch_array($getdata))
{
if($i > 0)
{
array_push($mm, $month, $units, $value, $asp);
$colcount++;
array_push($m, $mm);
$mm = array();
if($year != $d['data_year'] || $fact != $d['data_fact'] || $region != $d['data_region'] || $importtime != $d['importtime'])
{
array_push($y, $year, $m);
array_push($years, $y);
$m = array();
$y = array();
}
if($fact != $d['data_fact'] || $group != $d['fact_group'] || $region != $d['data_region'] || $importtime != $d['importtime'])
{
array_push($f, $factname, $years, $oldlabel, $order);
array_push($facts, $f);
$f = array();
$years = array();
$colcount = 0;
}
}
$i++;
}
array_push($mm, $month, $units, $value, $asp);
array_push($m, $mm);
if($year != $d['data_year'])
{
array_push($y, $year, $m);
array_push($years, $y);
$m = array();
$y = array();
$colcount++;
}
if($fact != $d['fact_id'])
{
array_push($f, $factname, $years, $oldlabel, $order);
array_push($facts, $f);
$f = array();
$years = array();
}
它正在使用php 5.2,但没有在php 5.5上工作,请帮助我们。
谢谢
答案 0 :(得分:1)
实际上是array_unique无效。 PHP 5.2按字符串排序,而后续版本默认使用常规排序。
$ imports = array_unique($ imports,SORT_REGULAR);
所以sort_regular对我有用:) 谢谢大家的评论
答案 1 :(得分:0)
我认为问题在于您的数据库连接。
从PHP 5.5.0开始,不推荐使用MYSQL
自PHP 5.5.0起,此扩展已弃用 从PHP 7.0.0开始删除。相反,要么是mysqli,要么是PDO_MySQL 应该使用扩展名。另请参阅MySQL API概述 选择MySQL API时提供帮助。
最好使用PDO
或MYSQLi
来提高安全性或可维护性