2017-05-27 18 views
0

我正在编写游戏脚本。它应该遍历查询并打印数字组。在每组中,有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 
     } 
    } 
} 
?> 

它显示了这一点:enter image description here

如您所见,最后一行是1 | 10。它应该是2 | 10(因为10号是组2中)(使用“检查元素”从1变为2enter image description here


我使用这些行的代码时,我的可变$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> 

,一切都工作正常:enter image description here。 我如何使用while循环来实现这一目标?

回答

0

我发现我的解决方案:)谢谢大家,您的帮助:)

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; 
}  
0

如果你只是想通过每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将给0的记录编号,工序 - 加1给出了1. 10,这将是(10/9)+ 1 = 2 ...

+0

给我请检查一秒钟。 – Luke

+0

它不工作:(它每次显示1个。 – Luke

+0

你确定你有'$ i ++'在那里 - 每次都需要这个计数器。 –