【问题标题】:Using an array to store data from sql query, but is repeating the result使用数组存储来自 sql 查询的数据,但重复结果
【发布时间】: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);,你会得到什么?

标签: php sql arrays


【解决方案1】:

你只取一个值并多次推送它, 您没有在循环中的任何地方使用 $value 。 尝试这个。

foreach ($c1 as $row) {


        $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);

}

让我知道这是否有效..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 2011-05-03
    • 1970-01-01
    • 2016-05-31
    相关资源
    最近更新 更多