我真的陷入了我的php代码的一部分!我有一个从1到40的数字范围,它们表示我从数据库中的表中提取数据,并使用while循环放到屏幕上!使用这些数字,我使用的是“提交”按钮,稍后我将替换为“图像”按钮!刚才我只能使用一张桌子将它们放在一行中,但是我想将它们分成说5个或更多的列,然后转到下一行打印下5个或大约的列!我一直在尝试循环,但它们以不同的行打印出1111、2222、3333、4444等,这不是我想要的!我想要,

 1  2  3  4  5
 6  7  8  9 10
11 12 13 14 15
etc


请帮助我,我已经有好几年了,这是到目前为止我的代码!

<?
  $q3 = "SELECT * FROM tblgame";
  $r3 = mysql_query($q3);
  while($row2 = mysql_fetch_array($r3))
  {
    $game_cost = $row2['game_cost'];

    echo "<p>Game ID: ".$row2['game_id'];
    echo "<br>Game Day: ".$game_day;
    echo "<br>Next Game Date: ".$row2['game_date_day']."/".$row2['game_date_month']."/".$row2['game_date_year'];

    $fyear = $row2['game_date_year'];
    $fmonth = $row2['game_date_month'];
    $fday = $row2['game_date_day'];
    $tmonth = $date_month;
    $tyear = $date_year;
    $tday = $date_day;
    $days_between = abs((mktime ( 0, 0, 0, $fmonth, $fday, $fyear) - mktime ( 0, 0, 0, $tmonth, $tday, $tyear))/(60*60*24));

    echo "<br>Days till next draw: ". $days_between;
    echo "<br />Game Cost: £".$row2['game_cost']."</p>";
 ?>
 <table>
 <tr>
 <?
    $q4 = "SELECT * FROM tblnewgameitem WHERE game_id = $row2[game_id] ORDER BY 'game_number' ";
    $r4 = mysql_query($q4);
    $n1 = mysql_num_rows($r4);
    $i=0;
    while($row3 = mysql_fetch_array($r4))
    {
    ?>
     <td>
     <?
       if($row3['user_email'] == "")
       {
       ?>
           <form action="buyanumber.php" method="POST">
             <input type="hidden" name="game_id" value="<?echo $row2['game_id'];?>">
             <input type="hidden" name="num" value="<? echo $row3['game_number']; ?>">
             <input type="submit" value="<?echo $row3['game_number'];?>" name="submit">
           </form>
       <?
       }
       else
       {
         $n = $n + 1;
         echo " ".$row3['game_number']." ";
       }
       ?>
     </td>
     <?
   }
   ?>
 </tr>
 </table>


请帮助我,我已经在这个问题上停留了很多天,它使我陷入困境,哈哈!

谢谢
史提芬

最佳答案

嵌套的for循环是关键:

$list=array();
while($row2 = mysql_fetch_array($r3)) $list[] = $row2;

$countList = count($list);
$cols = 5;
$rows = ceil($countList / $maxPerRow);

for ($i=0; $i<$rows; $i++) {
    echo 'opening stuff per row... <tr> or something';
    for ($j=0; $j<$rows; $j++) {
        echo 'your stuff per item... might be somthing like <td>s';
    }

    echo 'closing stuff per row... </tr> or something';
}


像这样的东西

关于php - 构造HTML以每行输出一组数字5,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4927813/

10-14 12:52
查看更多