繁体   English   中英

遍历查询并将数字分为几组

[英]Iterate through the query and divide numbers into groups

我正在为游戏编写脚本。 它应该遍历查询并打印数字组。 在每个组中,有9个数字。 例如,如果mysql_num_rows($sql_pp); 返回16,一切应如下所示:

  1. 1、2、3、4、5、6、7、8、9
  2. 10、11、12、13、14、15、16

我的代码:

<?php
ob_start();
session_start();
Header("Content-Type: text/html;charset=UTF-8");
require_once($_SERVER['DOCUMENT_ROOT']."/data/conn_file.php");

$login = $_SESSION['login'];
$laukai = mysql_query("SELECT tb_pole.num, tb_pole.type, tb_pole.time AS tb_pole_time,
    tb_time.time AS tb_time_time FROM `tb_pole` JOIN tb_time ON tb_pole.type =
    tb_time.type WHERE `username` = '$login' ORDER BY tb_pole.time");
$sql_pp = mysql_query("SELECT * FROM `tb_pole` WHERE `username` = '$login'") or
    die(mysql_error());
$kol_pole = mysql_num_rows($sql_pp);
$koll = $kol_pole / 9;

if ($kol_pole <= 8) {
    $kl = 1;
} else {
    $kl = 1;
    while ($kl <= $koll) {
        $kl++;
    }
}
?>
<table>
<?php
if (mysql_num_rows($laukai) > 0) {
    for ($i = 1; $i<=$kl; $i++) {
        while ($row = mysql_fetch_assoc($laukai))  {
?>
            <tr>
                <td><?php echo $i; ?></td>
                <td><?php echo $row['num']; ?></td>
            </tr>
    <?php
        }
    }
}
?>

它显示了这一点: 在此处输入图片说明

如您所见,最后一行是1 | 10 1 | 10 应该是2 | 10 2 | 10 (因为数字10在组2中)(使用“检查元素”从1更改为2 在此处输入图片说明


当我的变量$i不在while循环中时,我正在使用这些代码行:

<div id="tabs_pole">
<ul>
<?php
    for($i = 1; $i <= $kl; $i++) {
?>
        <li><a href="#pole<?=$i; ?>"><span><?=$i; ?></span></a></li>
<?php
    }
?>
</ul>
</div>

一切工作正常: 在此处输入图片说明 我如何使用while循环来实现呢?

如果您只是想将数字按9分组,那么

<?php
if (mysql_num_rows($laukai) > 0) {
        $i=1;
        while ($row = mysql_fetch_assoc($laukai))  {
?>
            <tr>
                <td><?php echo floor($i/9)+1; ?></td>
                <td><?php echo $row['num']; ?></td>
            </tr>
    <?php
        $i++;
        }
    }
}
?>

$i只是记录号,并使用round对其进行处理,对于1/9, round为0-加1为1。对于10,则为(10/9)+ 1 = 2 ...

我找到了解决方案:)谢谢大家的帮助:)

switch (true) {
case ($row['num'] <= 9):
    $i = 1;
    break;
case ($row['num'] <= 9 * 2):
    $i = 2;
    break;
case ($row['num'] <= 9 * 3):
    $i = 3;
    break;
case ($row['num'] <= 9 * 4):
    $i = 4;
    break;
case ($row['num'] <= 9 * 5):
    $i = 5;
    break;
case ($row['num'] <= 9 * 6):
    $i = 6;
    break;
case ($row['num'] <= 9 * 7):
    $i = 7;
    break;
case ($row['num'] <= 9 * 8):
    $i = 8;
    break;
}       

暂无
暂无

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

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