2013-10-14 107 views
0

我最近修改了一個分頁腳本來顯示mySQL數據庫。它看起來相當不錯,但有一件事我想改變。3行顯示SQL數據

下面是腳本現在的樣子: http://gyazo.com/7ef0d74caa781ab3e5f72a9935bcd7d0.png

它看起來體面,但右側這麼多的額外空間。所以我想我想在右側添加同樣的東西,另外2列包含更多信息。在這種情況下,只有15個,但這樣做後,頁面上會有45個結果。現在,這裏是我的腳本中最重要的部分:

<?php 
    while($row = mysql_fetch_array($result)) 
    { 
    echo "<div id='matchcall' style='float: left'>$row[winner] vs $row[loser] ($row[matches])<br />"; 

    } 
?> 

現在,請注意我有極限到15頁,但是,如果我這樣做,我可以乘上3和含有較多每頁信息。我想到的方法來解決這個問題,唯一體面的一個我不得不爲:

 if ($row['id'] == 15){ 
     echo "</div><div style='float: left'> 
        $row[winner] vs $row[loser] ($row[matches])<br /> 
    } 

但是,這不會在所有的工作,因爲它只會影響到第15分的結果,它不會繼續將接下來的15個浮動到右側。所以我意識到我需要一種方法讓它認識到15中的變化並以這種方式進行。任何人都可以在這個問題上閃耀一些光芒?

回答

0

如果我是你,我會用一個表格來顯示這些結果明顯更深入的討論:

<table> 
    <tr> 
     <td>Result1</td> 
     <td>Result2</td> 
     <td>Result3</td> 
    </tr> 
    <tr> 
     <!--td columns for the results of the second row--> 
    </tr> 
    <!--And 13 more rows... --> 
</table> 

注意:不要使用相同id爲多個html標籤,這是一個非常糟糕的做法。

id='matchcall' 

被重複。使用

class='matchall' 

如果您需要相同的值。

這是你可以生成你的表(我不是設計一個適合你,但你會趕上的想法):

<?php 
    $myTable = "<table>"; 
    $index = 0; 
    while($row = mysql_fetch_array($result)) 
    { 
     $modulo = $index % 3; 
     if ($modulo === 0) { 
      $myTable .= "<tr>"; 
     } else if ($modulo === 2) { 
      $myTable .= "</tr>"; 
     } 
     $myTable .= "<td><div class='matchall'>$row[winner] vs $row[loser] ($row[matches])</div></td>"; 
     $index++; 
    } 
    $myTable .= "</table>"; 
    echo $myTable; 
?> 

沒有時間來測試它,但你明白我的想法。

+0

真棒的幫助,但我真的希望我知道更多關於如何modulo工作,截至目前我只是插入數字哈哈。無論如何,感謝您的幫助。 – Jacob

+0

Modulo:考慮以下等式:(a + m)/ b = c,其中a,b,c和m是整數。我們可以說,除以b等於c,模m,因爲m是要加到a的整數,所以總和的結果除以b得到整數。一般來說,我們選擇一個m值爲正數,小於b的絕對值(b距離原點的距離)。例子:5/2 = 2 mod 1,因爲2 * 2 + 1 = 5。例2:9/7 = 1 mod 2,因爲1 * 7 + 2 = 9。http://en.wikipedia.org/wiki/ Modular_arithmetic –