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


Displays only the last row in foreach statement

          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;
    }

如代码中所示。我只能显示最后一行,不能显示其他行吗?

 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' => $query2);美元arr_data [' query3 '][] =数组('销售' => query2美元);

我想你的问题会解决的。

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

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

:

print_r($arr_data);