【问题标题】:php & mysql while loopsphp & mysql while 循环
【发布时间】:2011-11-30 13:16:48
【问题描述】:

我是 PHP 新手,我认为这是一个简单的问题。

我可以通过这种方式显示来自我的数据库的内容:

...
...
 <?php while($rows = mysql_fetch_array($queryNews)){    ?>
  <div class='title_news'><?php echo $row['Title'] ?> </div>
.... and so on... 

到目前为止还可以

然后我想模拟一种分页:我的意思是显示与新闻一样多的数字 我首先尝试了一个for循环

<?php for($i=1; $i<= sizeof(mysql_fetch_array($queryNews)); $i++){ ?>
    <div class="num_txt"><?php echo $i ?></div>
<?php } ?>

没有成功。所以我尝试了与第一个类似的方法,也没有成功。

    <?php 
        $i=1;
        while($row = mysql_fetch_array($queryNews)){    ?>
        echo '<script language="javascript">confirm('.$i.')</script>;';
            <div class="num_txt"><?php echo $i ?></div>
   <?php $i++; } ?>

有谁知道我做错了什么? 谢谢

【问题讨论】:

    标签: php mysql for-loop while-loop


    【解决方案1】:

    要生成一个数字数组,试试这个:

    $r = range(mysql_num_rows(YOUR_RESULT_SET));
    
    foreach($r as $n){
    echo $n;
    }
    

    这不是大多数人定义的分页,但如果您想学习如何使用 Mysql 中的 LIMIT 子句一次获取 10 个结果组,您可以轻松搜索 PHP 分页。

    【讨论】:

      【解决方案2】:

      您的 for 循环几乎是正确的,但 sizeof(mysql_fetch_array($queryNews)) 从结果集中获取一行并返回该行中的列数。您想要结果集中的行数:

      <?php for($i=1, $numRows = mysql_num_rows($queryNews); $i<= $numRows; $i++){ ?>
          <div class="num_txt"><?php echo $i ?></div>
      <?php } ?>
      

      【讨论】:

        【解决方案3】:

        使用mysql_num_rows 计算总行数,或创建一个变量,当您循环遍历记录以获得总行数时递增。

        【讨论】:

        • 不知道为什么,但是增量的代码块没有显示出来......现在是......当你提到一个递增的变量时,是这样的吗?同时我会尝试mysql_num_rows。谢谢
        猜你喜欢
        • 2019-02-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-30
        • 2016-11-27
        • 1970-01-01
        • 2012-11-11
        相关资源
        最近更新 更多