【发布时间】:2015-10-07 14:14:59
【问题描述】:
我有一个查询,因为只有一行有结果,我试图将其内容存储在一个数组中。问题是代码在数组 $vs31 中放入了实际结果的五倍,我不明白为什么。
$query1 = "SELECT PROCESSO,DATAMSG, CATEGORIA_DESC, VALOR, CRITICO FROM TABLEX";
$result1 = oci_parse($connect, $query1);
oci_execute($result1);
$c1=array();
oci_fetch_all($result1, $c1, null, null, OCI_FETCHSTATEMENT_BY_ROW);
$f=0;
foreach ($c1 as $row) {
foreach ($row as $key => $value) {
$vs3=array();
$f++;
$vs3['id']= $f;
$vs3['title']='VSC - '.$row['CATEGORIA_DESC'];
$vs3['startdate']=$row['DATAMSG'];
$vs3['enddate']=$row['DATAMSG'];
$vs3['description']= 'VALOR - '.$row['VALOR'];
$vs3['date_display']='ho';
$vs3['icon']='plus_blue.png';
$vs3['importance']='30';
$vs3['css_class']='hot-event';
array_push($vs31,$vs3);
}
}
print_r($vs31);
我得到了什么:
Array
(
[0] => Array
(
[id] => 103
[title] => VSC - ECG_HR
[startdate] => 2015-04-27 23
[enddate] => 2015-04-27 23
[description] => VALOR - 59
[date_display] => ho
[icon] => plus_blue.png
[importance] => 30
[css_class] => hot-event
)
[1] => Array
(
[id] => 104
[title] => VSC - ECG_HR
[startdate] => 2015-04-27 23
[enddate] => 2015-04-27 23
[description] => VALOR - 59
[date_display] => ho
[icon] => plus_blue.png
[importance] => 30
[css_class] => hot-event
)
[2] => Array
(
[id] => 105
[title] => VSC - ECG_HR
[startdate] => 2015-04-27 23
[enddate] => 2015-04-27 23
[description] => VALOR - 59
[date_display] => ho
[icon] => plus_blue.png
[importance] => 30
[css_class] => hot-event
)
[3] => Array
(
[id] => 106
[title] => VSC - ECG_HR
[startdate] => 2015-04-27 23
[enddate] => 2015-04-27 23
[description] => VALOR - 59
[date_display] => ho
[icon] => plus_blue.png
[importance] => 30
[css_class] => hot-event
)
[4] => Array
(
[id] => 107
[title] => VSC - ECG_HR
[startdate] => 2015-04-27 23
[enddate] => 2015-04-27 23
[description] => VALOR - 59
[date_display] => ho
[icon] => plus_blue.png
[importance] => 30
[css_class] => hot-event
)
)
它想要什么:
Array
(
[0] => Array
(
[id] => 103
[title] => VSC - ECG_HR
[startdate] => 2015-04-27 23
[enddate] => 2015-04-27 23
[description] => VALOR - 59
[date_display] => ho
[icon] => plus_blue.png
[importance] => 30
[css_class] => hot-event
)
)
【问题讨论】:
-
您的查询返回 5 个结果,您正在循环它们并将它们推送到
$vs31数组中。那是因为您的表有 5 个条目,而您没有使用 WHERE 子句来过滤它们。如果您想要不同的输出,请尝试更改您的查询或使用 LIMIT 1。 -
不正确,该表只有 1 个条目而不是 5 个条目,所以我不需要任何 WHERE 子句。
-
你说得对,对不起,我只关注
id字段。如果你在for语句之前执行echo '<pre>'; print_r($c1);,你会得到什么?