【问题标题】:PHP looping increasing numbers [closed]PHP循环增加数字[关闭]
【发布时间】:2013-06-15 20:10:04
【问题描述】:

我有这个代码:

<?php
$i=1;
while($i<=10)
  {
  echo "" . $i . "<br>";
  $i++;
  }
?>

此列表为:

1 2 3 4 5 6 7 8 9 10

我正在尝试将echo "" . $i . "&lt;br&gt;"; 实现为&lt;td&gt; 单元格:

<table>
<?php 
$data = mysql_query("SELECT board.*,numlikes FROM board
LEFT JOIN (SELECT pins.board_id, COUNT(source_user_id) AS numlikes
FROM likes INNER JOIN pins ON pins.id = likes.pin_id GROUP BY pins.board_id) 
likes ON board.id = likes.board_id
WHERE who_can_tag='' ORDER BY numlikes DESC LIMIT 10") or die(mysql_error());
while($info = mysql_fetch_assoc( $data ))
{
Print "<tr>";
Print "<td>";
Print "$i";
Print "</td>";
Print "<td>";
Print "<a href='/board/index/".$info['id']."'><font size='5pt'>".$info['board_name']."</font></a>";
Print "</td>";
Print "<td align='center'>".$info['numlikes']."</td>";
Print "</tr>";

}

?>
</table>

但我得到的只是数字 11 是每个单元格!

我做错了什么?

【问题讨论】:

  • 您没有在以下代码中的任何位置设置变量 $i。
  • 此扩展自 PHP 5.5.0 起已弃用,将来将被删除。相反,应该使用 MySQLi 或 PDO_MySQL 扩展。见:php.net/manual/en/function.mysql-db-query.php
  • 澄清一点...具体来说,mysql 扩展(提供mysql_ 功能的扩展)已被弃用。它一直处于仅维护阶段,并且多年来一直不推荐用于新代码。我会要求 2013 年教你使用它的人退款。
  • 您是指mysql_query 部分吗?有人最近在这里告诉我,这是最新的方法,而我在问题中提供的方法已被弃用。
  • PHP 网站上有一个comparison of the three MySQL APIs。 mysql_* 函数已弃用; mysqli_* 函数(及其面向对象的对应函数)不​​是。

标签: php loops foreach


【解决方案1】:

您没有增加 while loop 中的变量。

你需要声明$i并在循环中增加它,例如:

$i = 1;
while($info = mysql_fetch_assoc( $data ))
{
   print "<tr>";
   print "<td>";
   print "$i";
   print "</td>";
   print "<td>";
   print "<a href='/board/index/".$info['id']."'><font size='5pt'>".$info['board_name']."</font></a>";
   print "</td>";
   print "<td align='center'>".$info['numlikes']."</td>";
   print "</tr>";

   $i++;
}

【讨论】:

    【解决方案2】:

    你忘了:

    $i++;
    

    线。并且您必须在 while 之前将 $i 设置为 0 或 1。

    【讨论】:

      【解决方案3】:

      是的,您在第二个代码中无处增加 $i。所以用$i++增加它:

      $i = 1;
      while ($info = mysql_fetch_assoc( $data ))
      {
          // ...
          print "<td>";
          print $i++;
          print "</td>";
         //...
      }
      

      另外,首先初始化你的$i,这样你就可以确定它之前没有设置过。

      【讨论】:

      • 谢谢。我现在开始工作了。如此简单,但我已经考虑了好几个小时了。
      猜你喜欢
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-25
      • 1970-01-01
      相关资源
      最近更新 更多