Skip to content
Advertisement

How to change and set the loop for the following code to display “Purpose & Stamp” only?

My code can print only separate invoice for each different product and I coded it for single product only but I need to add multiple product print in single paper. I am facing syntax error to change the loop body.How can I shift down the loop between “Purpose & Stamp” under the table?

here is the code so far

 while($row = $orderItemResult->fetch_array()) {       
                        

       $table .= '
       <div class="container">
       <div id="companyLogo" >
        <img style="float: left; padding-right:5px;" height="50px" width="50px" src='.$company_logo.'>
      </div>
    <h4>'.$company_name.' </h4>
        <p id="address">'.$company_address.' <br/>
            
        </p>
        <p> 
        <span class="#">Contact:</span> <span class="comcontact"> '.$company_phone.' </span><br/>
        <span class="boldText">Email :</span> '.$com_email.' <br/>
        <span class="boldText">Date :</span> '.$orderDate.', &nbsp;&nbsp; ['.$timenow.'] </p>
        ................................................................... <br/>
        <span class="boldText">TOKEN NO : </span>'.$orderId.' <br/>
        <span class="boldText">CUSTOMER ID NO : </span> '.$clientContact.' <br/>
        <span class="boldText">Name : </span> '.$clientName.'  <br/>
        <span class="boldText">Mob : </span> '.$clientContact.' <br/>
        
        <span class="boldText">Address :  </span> '.$client_address.'   <br/>
        
         
        
        <span class="boldText">Purpose : </span> '.$row[4].'   <br/>
        <span class="boldText">Box No : </span> '.$row[7].'  <br/>
        <span class="boldText">Weight : </span>  '.$row[6].'  <br/>
        <span class="boldText">Product Name : </span>  '.$row[8].'  <br/>
        <span class="boldText">Stamp : </span>  '.$stamp.'  <br/>
        ................................................................... <br/>
        <span class="boldText">TOTAL CHARGE : </span> '.$row[3].' <br/>
        <span class="boldText">Payment Status : </span> '.$payment_status.' <br/>
        ................................................................... <br/>
        <span class="boldText">Prepared By : </span> '.$userName.' <br/>
        <br/>
        
        <p id="address"> "Have a nice day.." </p>
    </div>
       
       
       
       ';
           $x++;
            } // /while '.$row[4].' for product description and '.$row[5].' for brands
                
       $table.= '

    

Advertisement

Answer

Preamble

It is quite unclear for me what you mean with shifting the loop down. What I suppose you want to achieve is to loop the lower section, not everything. This answer is based on that assumption. So here is my guess, cleaning up your code a little bit making use of PHPs templating power what makes it much easier to read.

Explanation

I am fetching the first row, using that data for the first elements. Where the loop occurs I’ve put the string %s as a placeholder and fill it later with the real content. For the loop itself, a do while is perfect, because on the first run $row stays what it is and the while runs until out of data.

$table = '';
$row   = $orderItemResult->fetch_array();

$table .= <<<"_HTML"
<div class="container">
   <div id="companyLogo" >
        <img style="float: left; padding-right:5px;" height="50px" width="50px" src="{$company_logo}">
    </div>
    <h4>{$company_name}</h4>
    <p id="address">{$company_address}<br/>            
    </p>
    <p> 
    <span class="#">Contact:</span> <span class="comcontact">{$company_phone}</span><br/>
    <span class="boldText">Email :</span>{$com_email}<br/>
    <span class="boldText">Date :</span>{$orderDate}, &nbsp;&nbsp; [{$timenow}] </p>
    ................................................................... <br/>
    <span class="boldText">TOKEN NO : </span>{$orderId}<br/>
    <span class="boldText">CUSTOMER ID NO : </span>{$clientContact}<br/>
    <span class="boldText">Name : </span>{$clientName}<br/>
    <span class="boldText">Mob : </span>{$clientContact}<br/>
    
    <span class="boldText">Address :  </span>{$client_address}<br/>
    ................................................................... <br/>
    <span class="boldText">TOTAL CHARGE : </span>{$row[3]}<br/>
    <span class="boldText">Payment Status : </span>{$payment_status}<br/>
    <span class="boldText">Purpose : </span>{$row[4]}<br/>
    %s
    <span class="boldText">Stamp : </span>{$stamp}<br/>
    ................................................................... <br/>
    <span class="boldText">Prepared By : </span>{$userName}<br/>
    <br/>
    
    <p id="address"> "Have a nice day.." </p>
</div>
_HTML;

$loop = '';
do {
    $loop .= <<<"_HTML"
    <span class="boldText">Box No : </span>{$row[7]}<br/>
    <span class="boldText">Weight : </span>{$row[6]}<br/>
    <span class="boldText">Product Name : </span>{$row[8]}<br/>
_HTML;
} while ($row = $orderItemResult->fetch_array());

$table = sprintf($table, $loop);
User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement