2015-03-24 3 views
0

мне нужно фильтровать данные, основываясь на некоторых условиях и отображения отфильтрованных данных, а также суммарные значения сум- суммы ..PHP код, чтобы отобразить сумму суммы столбца

, но проблема в том, у меня есть два разных запроса ...

ниже мой код, чтобы фильтровать данные из базы данных на основе FromDate и Todate ...

кода [пробы. мои данные код отображается правильно, но не отображает сумму суммы столбца, который поступает из второго состояния в FromDate и на сегодняшний день фильтр ....

<?php 
    if($_POST && isset($_POST['Submit'])) 
    { 
     if($_POST['street']!='') 
     { 
     $street = $_POST['street']; 
     $data = $database->getRows("SELECT *, GROUP_CONCAT(coupon) as cou,GROUP_CONCAT(coupondate) as coupondt FROM receipt_entry WHERE street =:street GROUP by book_no,receipt_no",array(':street'=>$street)); 
     } 


     elseif($_POST['fromdate']!='' && $_POST['todate']!='') 
    { 
    $fromdate = $_POST['fromdate']; 
    $todate = $_POST['todate']; 
    $data = $database->getRows("SELECT *, GROUP_CONCAT(coupon) as cou,GROUP_CONCAT(coupondate) as coupondt FROM receipt_entry WHERE bookingdate BETWEEN :fromdate AND :todate GROUP   BY book_no,receipt_no order by bookingdate asc" 
    ,array(':fromdate'=>$fromdate,':todate'=>$todate)); 

    $tot = $database->getRows("SELECT SUM(AmountTotal) FROM (SELECT SUM(DISTINCT amount) AS AmountTotal, receipt_no FROM receipt_entry where bookingdate BETWEEN :fromdate AND  :todate GROUP BY receipt_no) AS T1",array(':fromdate'=>$fromdate,':todate'=>$todate)); 
    } 


     } 
    ?> 


<table> 
     <thead> 
     <tr> 
      <th width="4%">Sr.No</th> 
      <th width="12%">Book/Recpt</th>    

     </tr> 
     </thead> 

     <tbody> 
      <?php foreach($data as $row){ ?>   
      <tr> 
      <td></td> 
      <td><?php echo htmlspecialchars($row['book_no']); ?>/<?php echo htmlspecialchars($row['receipt_no']); ?></td>  

     </tr> 
     </tbody> 
     <?php }?> 

<?php foreach($tot as $tota) {?> 
    <tr><td colspan="8"><?php echo $tota['AmountTotal']; ?></td></tr>   
    <?php } ?> 
    </table> 

ответ

0

Вы на самом деле можете запросить два раза, используя как упомянутый запрос затем объединить его в один ассоциативный массив в переменной $ data.

$d = $database->getRows("SELECT *, GROUP_CONCAT(coupon) as cou,GROUP_CONCAT(coupondate) as coupondt FROM receipt_entry WHERE bookingdate BETWEEN :fromdate AND :todate GROUP   BY book_no,receipt_no order by bookingdate asc" 
,array(':fromdate'=>$fromdate,':todate'=>$todate)); 
$tot = $database->getRows("SELECT SUM(AmountTotal) FROM (SELECT SUM(DISTINCT amount) AS AmountTotal, receipt_no FROM receipt_entry where bookingdate BETWEEN :fromdate AND  :todate GROUP BY receipt_no) AS T1",array(':fromdate'=>$fromdate,':todate'=>$todate)); 
$data = array('data'=>$d, 'total'=>$tot); 

Затем вы можете передавать $ data везде, чтобы использовать оба значения.

+0

Я поместил свой полный код ... в мое сообщение ... вопрос ... данные отображаются правильно, но мой запрос $$ tot не получает сумму столбца amouint и не отображает сумму ниже таблицы ......, но когда я запускаю этот запрос в базе данных, это отлично работает ... –

+0

попробуйте использовать echo $ tot ['SUM (AmountTotal)']; –

+0

i эхо, как указано выше, но не работает ..... –

Смежные вопросы