繁体   English   中英

在3行中显示SQL数据

[英]Display SQL data in 3 rows

我最近修改了一个分页脚本,以显示mySQL数据库。 看起来还不错,但是我想改变一件事。

现在,脚本显示如下: http : //gyazo.com/7ef0d74caa781ab3e5f72a9935bcd7d0.png

看起来不错,但右边有太多额外的空间。 所以我想我想在右边添加相同的内容,另外两列包含更多信息。 在这种情况下,只有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的变化并以这种方式进行。 谁能给这个问题照亮一点?

您需要取模。 我对该线程有更深入的讨论,如何使用它们。 如何在div中使用foreach进行迭代?

如果我是您,我将使用表格显示这些结果:

<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>

注意:切勿对多个html标签使用相同的ID,这是非常不好的做法。

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;
?>

没有时间进行测试,但是您明白了我的想法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM