2012-02-21 56 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. 
     } 

    } 

我想你可以这一招之下。