0

hello here is my code which i have written in the codeigniter controller,when i run this code am getting Parse error: syntax error, unexpected 'foreach' (T_FOREACH) ,kindly help me on this

function send_payment_notification()
{
    if($_POST)
    {

     $vendor_id=$_POST['vendor_id'];
     $vendor_name=$_POST['vendor_name'];
     $from_date=$_POST['from_date'];
     $to_date=$_POST['to_date'];

     for($i=0;$i<count($vendor_id);$i++)
     {
        $v_id= $vendor_id[$i];
        $v_name= $vendor_name[$i];
        $f_date=$from_date[$i];
        $t_date=$to_date[$i];

        $query="select * from `order` where (DATE(order.service_date) between '".$f_date."' and '".$t_date."') AND status_code='OCMP' and order.vendor_id=$v_id";
        $data['order_ids']=$this->finance_model->run_manual_query_return_result2($query);


        $query="SELECT v.vendor_email,c.cat_name,c.commission_type,c.commission,sum(c.commission) commissionrupees, SUM( CASE WHEN final_amount_paid !=0 THEN final_amount_paid ELSE total_cost END ) AS total,order.vendor_id,v.vendor_name,sum(distinct v.wallet_balance) as wallet FROM `order` join vendor v on v.vendor_id=order.vendor_id join category c on c.cat_id=v.cat_id where (DATE(order.service_date) between '".$f_date."' and '".$t_date."') AND status_code='OCMP' and order.vendor_id=$v_id";
    $payment_notification=$this->finance_model->run_manual_query_return_row($query);


         $template="

        Hi Service Providers,

        Please find payment details for the week ".$f_date." to ".$t_date." .

        <table>
            <tr> <th>Category </th><th>order ids </th><th>Total Amount </th> <th>Commission charged </th><th>online payment </th><th>Bro4u offers </th><th>Total payable </th> </tr>

    <tr> 
    <td>".$payment_notification->cat_name."</td> 

    <td>"foreach($data['order_ids'] as $o_id)
     { 
     $o_id->order_id

     }"</td> 

    <td>".$payment_notification->total."</td> 

    <td>".$payment_notification->commissionrupees."</td> 

    <td>online</td> 

    <td>offers</td> 

    <td>payable</td>
      </tr>     


        </table>

        <br/>   
        Happy to serve,<br/>
        Team Bro4u<br/>
        ";










        //$this->bro4u->email_alert($payment_notification->vendor_email, "credit of amount", $template);


    echo $template;


     }  

    }




}
Abdulla Nilam
  • 36,589
  • 17
  • 64
  • 85
khan
  • 33
  • 2
  • 7

4 Answers4

0

Need to close statement:

Change:

<td>"foreach($data['order_ids'] as $o_id)

To:

<td>";foreach($data['order_ids'] as $o_id)
Pupil
  • 23,834
  • 6
  • 44
  • 66
0

what about this

<td>"; # close ;
    foreach($data['order_ids'] as $o_id)
    { 
        $o_id->order_id ; # use echo or some of your argument as well
    }
"</td> # start "
Abdulla Nilam
  • 36,589
  • 17
  • 64
  • 85
0

You cannot use for each inside a variable. Use like this instead:

$template=" Hi Service Providers, Please find payment details for the week to
<table>
    <tr>
        <th>Category</th>
        <th>order ids</th>
        <th>Total Amount</th>
        <th>Commission charged</th>
        <th>online payment</th>
        <th>Bro4u offers</th>
        <th>Total payable</th>
    </tr>
    <tr>
        <td>a</td>"; 

foreach($d as $o) { 
  $template.= "<td>".$o."</td>"; 
} 

$template.="<td>adsfsaf</td>
            <td>asdfdsf</td>
            <td>online</td>
            <td>offers</td>
            <td>payable</td>
        </tr>
    </table>
    <br/>Happy to serve,
    <br/>Team Bro4u
    <br/>"; 
Thamilhan
  • 13,040
  • 5
  • 37
  • 59
0

You can't use foreach loop inside variable. You can use this type-

 foreach($data['order_ids'] as $o_id)
 { 
    $template.= "<td>".$o_id->order_id."</td>";

 }
Arvind Jaiswal
  • 442
  • 5
  • 14