2012-02-21 3 views
1

Я пытаюсь решить проблему. У меня есть индексной страницы и пользователей ввести дату начала и окончания, чем пресса отправить список пришел так:Php - отображение даты только один раз

Что я хочу, чтобы показать дату, как этот

30191592 Izlesene.com izlesene_kanal_v4_360 1 
    30191592 Izlesene.com izlesene_player_v4_240 1 
    30191592 Izlesene.com player_mydonose 4 
    30191592 Izlesene.com izlesene_sponsor_v4_360 16 
    30191592 Izlesene.com izlesene_player_v4_360 32 
    30191592 Izlesene.com izlesene_cihan_v4 152 
    30191592 Izlesene.com izlesene_vodafone_v3 1052 
    30191592 Izlesene.com izlesene_sponsor_v4 3099  
    30191592 Izlesene.com izlesene_kanal_v4 13727 
    30191592 Izlesene.com izlesene_player_v4 2144704 
    47335159 İzlesene Ntv izlesene_player_v4 2546  
    47335159 Cihanhaber izlesene_cihan_v4 8794 2012-02-21 
    30191592 Izlesene.com izlesene_sponsor_v4 3099  
    30191592 Izlesene.com izlesene_kanal_v4 13727 
    30191592 Izlesene.com izlesene_player_v4 2144704 
    47335159 İzlesene Ntv izlesene_player_v4 2546  
    47335529 İzlesene Cihanhaber izlesene_player_v4 2279  
    47335529 İzlesene Cihanhaber izlesene_cihan_v4 8794 2012-02-20 

Я имею в виду, что я хочу показать даты только один раз.

while ($info = mysql_fetch_array($dbResult)) { 
             $total+= $info['totalEvents']; 
             echo "<tr>"; 
             echo "<td><input type=checkbox name='check1' id='check1' value='" . $info['eventCategory'] . "' onclick=recal(" . $info['totalEvents'] . ",this.checked) checked></td><td>" . $info['id'] . "  " . $info['name'] . "</td>"; 
             echo "<td>" . $info['eventCategory'] . "</td>"; 
             echo "<td><id='totalEvents'>". $info['totalEvents'] . "</td>"; 
              echo "<td>". $info['Date'] . "</td>"; 
            } 



            echo "<td><b id='total'>" . $total . "</b></td>"; 

Это мой код, какими могут быть изменения?

спасибо.

enter image description here

ответ

4

Просто проверьте, если дата такой же, как и предыдущий. Вы можете сделать это так:

$previousDate = ''; 
while ($info = mysql_fetch_array($dbResult)) { 
             $total+= $info['totalEvents']; 
             echo "<tr>"; 
             echo "<td><input type=checkbox name='check1' id='check1' value='" . $info['eventCategory'] . "' onclick=recal(" . $info['totalEvents'] . ",this.checked) checked></td><td>" . $info['id'] . "  " . $info['name'] . "</td>"; 
             echo "<td>" . $info['eventCategory'] . "</td>"; 
             echo "<td><id='totalEvents'>". $info['totalEvents'] . "</td>"; 
             if ($info['Date'] != $previousDate){ 
              echo "<td>". $info['Date'] . "</td>"; 
             } else { 
              echo "<td></td>"; 
             } 
             $previousDate = $info['Date']; 
            } 



            echo "<td><b id='total'>" . $total . "</b></td>"; 
1

Так что, если я понимаю это право, вы хотели бы показать каждую дату только один раз. Итак, как насчет сохранения даты в некоторой буферной переменной и проверки того, является ли следующая дата одинаковой. Что-то вроде этого.

$buff = ""; 

while ($info = mysql_fetch_array($dbResult)) { 
    $total+= $info['totalEvents']; 
    echo "<tr>"; 
    echo "<td><input type=checkbox name='check1' id='check1' value='" . $info['eventCategory'] . "' onclick=recal(" . $info['totalEvents'] . ",this.checked) checked></td><td>" . $info['id'] . "  " . $info['name'] . "</td>"; 
    echo "<td>" . $info['eventCategory'] . "</td>"; 
    echo "<td><id='totalEvents'>". $info['totalEvents'] . "</td>"; 
    if ($info['Date'] != $buff) 
    {           
    echo "<td>". $info['Date'] . "</td>"; 
    $buff = $info['Date']; 
    } 
    else 
    {           
    echo "<td></td>"; 
    } 
} 
echo "<td><b id='total'>" . $total . "</b></td>"; 
1

Всего несколько трюков могут удовлетворить ваши требования.

добавить в свой запрос: order by "date field name".

, а затем заменить код во время, как:

$tempDate; 
while ($info = mysql_fetch_array($dbResult)) { 
     if($tempDate == $info['totalEvents']) { 
      //do that you want like merge the data of same date. 
     } else { 
      $tempDate = $info['totalEvents']; 
      // create new row. 
     } 

    } 

Я думаю, что вы можете под эту уловку.