2016-09-29 68 views
1

我想要的是顯示每個Category id項目的總點擊次數,僅對20個項目按最高總點擊次數排序。創建表中的循環在Php

現在我使用硬編碼和結果必須看起來像這樣

i am using hard code to t

所以,如果item idtotal clicks已經填補了

20columns(用於項目ID和總點擊次數)+ 2,因此意味着

22列

它必須移動到下一行。

因爲我指的是我的分貝,所以我用循環創建表,當我這樣做的方式,我得到這個結果....

enter image description here

的結果將繼續顯示,直到結束在左側。這是非常難以閱讀報告的目的。我希望結果看起來像我上傳的第一個數字。

這裏是我現在做:

include "Con.php"; 
     //get the value from Get Method 
     $CatidValue = $_GET['CatIds']; 
     //(The date format would looks like yyyy-mm-dd) 
     $DateFrom = $_GET['DateFrom']; 
     $DateTo = $_GET['DateTo']; 
     //select the CatID 
     $SqlGet= "Select CatId from try where CatId = $CatidValue"; 
     $_SqlGet = mysqli_query($connection,$SqlGet); 
     $TakeResultGet = mysqli_fetch_array($_SqlGet); 
     $CatIdTittle = $TakeResultGet ['CatId']; 

     echo" 
      For Category Id : $CatIdTittle 
      <br> 

     "; 

     //For Loop purpose and break the value 
     $explodeValueFrom = explode("-",$DateFrom); 
     $explodeValueTo = explode("-",$DateTo); 
     $DateValueFrom = $explodeValueFrom[0].$explodeValueFrom[1].$explodeValueFrom[2]; 
     $DateValueTo = $explodeValueTo[0].$explodeValueTo[1].$explodeValueTo[2];  

     //Loop through the date 
     for($Loop=$DateValueFrom; $Loop <= $DateValueTo; $Loop++){ 
      $YearLoop= substr($Loop, 0,4); 
      $MonthLoop =substr($Loop, 4,2); 
      $DayLoop = substr($Loop, 6,2); 

      $DateTittleValue = $YearLoop."-".$MonthLoop."-".$DayLoop; 
      $trValue = "<th class='tg-amwm' colspan='2'>$DateTittleValue</th>"; 


       echo" 
       <table class='tg'> 
        <tr> 
         $trValue 
        </tr> 
       "; 
       echo" 
       <table class='tg'> 
        <tr> 
         <td class='tg-yw4l'>Items Id</td> 
         <td class='tg-yw4l'>Total Clicks</td> 
        </tr> 
       "; 



      //to get the item id and total clicks 
      $SqlSelect = "select `Item Id`,`Total Clicks`,Day from try where CatId = $CatidValue and Day = '$DateTittleValue' ORDER BY `try`.`Total Clicks` DESC limit 20"; 
      $_SqlSelect = mysqli_query($connection,$SqlSelect); 
      foreach ($_SqlSelect as $ResultSelect) { 
       $Day = $ResultSelect['Day']; 
       $ItemId = $ResultSelect['Item Id']; 
       $TotalClicks = $ResultSelect['Total Clicks']; 

       echo"  
        <tr> 
         <td class='tg-yw4l'>$ItemId</td> 
         <td class='tg-yw4l'>$TotalClicks</td> 
        </tr>    
       "; 
      } 
     }   
    ?> 
+0

你可以在CSS和一些浮動魔法的幫助下實現這一點。只需將每個表格放置在div中,並使它們浮動到左側。 –

+0

@LeonelAtencio「浮動魔法」? –

回答

1

你只需要浮每個表與浮動:左CSS屬性和基於表的數量,你想在同一行一定比例。在這種情況下,33%會做。看看這個codepen:http://codepen.io/anon/pen/EgXqPk

魔術發生在:

.tg { 
    width: 33%; 
    float:left; 
} 
+0

你是最棒的!這是答案 –

+0

很高興我幫了忙。如果這回答它,請接受它! –

+0

完成!感謝您的幫助(y) –

3

你需要在表格內動態添加TD每天報告(數據應該按日期進行分組)。

+0

你說的是對的,但@Leonel Atencio的答案適合我的情況。謝謝! –

1
you can try i hope this perfect for you to draw a table using PHP Loop. 
<?php 
echo "<table border =\"1\" style='border-collapse: collapse'>"; 
for ($row=1; $row <= 10; $row++) { 
echo "<tr> \n"; 
for ($col=1; $col <= 10; $col++) { 
$p = $col * $row; 
echo "<td>$p</td> \n"; 
} 
echo "</tr>"; 
} 
echo "</table>"; 
?>