我正在为游戏编写脚本。它应该迭代查询并打印数字组。每组有9个数字。例如,如果 mysql_num_rows($sql_pp);
返回 16,则所有内容应如下所示:
- 1、2、3、4、5、6、7、8、9。
- 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.
.应该是 2 | 10
(因为数字 10 在组 2 中)(使用“inspect element”从 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>
最佳答案
我找到了解决方案:)谢谢大家的帮助:)
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;
}
关于php - 迭代查询并将数字分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44217727/