仅显示foreach语句中的最后一行

时间:2011-09-22 08:32:56

标签: php foreach

          if($query->num_rows()>0)
    {
        foreach($query->result() as $row)
        {
            $slNo   =   $row->sl_no;
            //echo "</br>";
            $sql1 = "SELECT * FROM main_stock_outward WHERE product_id='$slNo' AND request_id='$requestId'";
            //echo "</br>";
            $query1     = $this->db->query($sql1);
            if (!($query1->num_rows() > 0)) 
            {
                echo "hi";
                echo $sql2  =   "SELECT a.sl_no,a.product_name,a.barcode,b.request_qty,b.deliver FROM stock_product a, stock_request b WHERE b.pos_id='$posNum' AND b.ordered_date like '$requestIssueDate%' AND b.request_id='$requestId' AND a.sl_no='$slNo' AND b.deliver='0' AND a.barcode=b.product_barcode ORDER BY request_qty DESC";
                $query2     = $this->db->query($sql2);
                //return $query2;
                $arr_data['query3']=array('sales'   => $query2);
                //$query3   = array(
                //  'sales' => $query2);
            }
        }
        print_r($arr_data['query3']);
        return $query2;
    }

再次显示在代码中。我只能显示最后一行无法显示的行吗?

2 个答案:

答案 0 :(得分:1)

 if($query->num_rows()>0)
{
    foreach($query->result() as $row)
    {
        $slNo   =   $row->sl_no;
        //echo "</br>";
        $sql1 = "SELECT * FROM main_stock_outward WHERE product_id='$slNo' AND request_id='$requestId'";
        //echo "</br>";
        $query1     = $this->db->query($sql1);
        if (!($query1->num_rows() > 0)) 
        {
            echo "hi";
            echo $sql2  =   "SELECT a.sl_no,a.product_name,a.barcode,b.request_qty,b.deliver FROM stock_product a, stock_request b WHERE b.pos_id='$posNum' AND b.ordered_date like '$requestIssueDate%' AND b.request_id='$requestId' AND a.sl_no='$slNo' AND b.deliver='0' AND a.barcode=b.product_barcode ORDER BY request_qty DESC";
            $query2     = $this->db->query($sql2);
            //return $query2;
            $arr_data['query3']**[]** =array('sales'   => $query2);
            //$query3   = array(
            //  'sales' => $query2);
        }
    }
    print_r($arr_data['query3']);
    return $query2;
}

你错过了制作数组,我修改了一行 - $ arr_data ['query3'] = array('sales'=&gt; $ query2); as $ arr_data ['query3'] [] = array('sales'=&gt; $ query2);

我认为你的问题会解决。

答案 1 :(得分:0)

因为你做错了。您将每个结果分配给同一个变量。 试试这个:

$arr_data[]=array('sales'   => $query2);

和:

print_r($arr_data);
相关问题