如何使用一个脚本将while循环分成页面?

时间:2013-03-21 11:19:40

标签: php mysql

我目前正在设计一种调查型系统,其中系统显示使用while循环投票的人数。不幸的是,我不知道如何创建页面,相反,我只能将整个while循环迭代到一个整页脚本中。

这是我的代码:

while($fetch=mysql_fetch_array($query1)){

    //Code here

        while($fetch=mysql_fetch_array($query2)){

            //VERIFY ANSWERS
            if(isset($_POST['voted'])){
                if(in_array($_POST['score('.$fetch['questionID'].')'], $radioValue)){
                }
                else{
                    $missed++;
                }

                $checker = true;
            }
        }

            //CHECKER IF A RADIO BUTTON IS MISSED 
            if($checker==true){
                if($missed==$rows || $missed < $rows && $missed != 0 ){
                    echo "<center><font color=red>All items are required</font><br>";
                }
                else{
                    //Some code here
                }
            }

        $query=mysql_query("SELECT * FROM questions");
        while($fetch=mysql_fetch_array($query)){
            //DISPLAYS QUESTIONS WITH QUESTION NUMBER
                            //Some code here

            //DISPLAYS RADIO BUTTONS FROM 1 to 5    
                            //Some code here
            }
        }

    echo "</table>
    <br><center>
    <input type='submit' name='voted' value='Submit'>
}

基本上,我的代码只是while循环中的while循环

编辑:为了说清楚,我问如何使用一个脚本将while循环迭代分成“页面”。

所以基本上,我想要发生的是:

被提名人1 显示问题(1到9)

下一步按钮

被提名人2 再次显示问题(1到9)

此外,它只会根据fetch_array命令收集的项目数重新进行迭代。

3 个答案:

答案 0 :(得分:2)

您应该在SQL查询中使用LIMIT,并仅获取该页面问题列表。
类似于:SELECT * FROM questions LIMIT 0, 10会提取前10个问题。

我建议阅读MySQL文档:http://dev.mysql.com/doc/refman/5.0/en/select.html以及不要使用 mysql _ * php函数,不推荐使用PDOmysqli_*函数

答案 1 :(得分:0)

如果我有你的问题,那么我认为你可以这样做:

<?php
   while(...) {
 #your while loop code
?>
your HTML code for showing data 
<?php
 } # terminate while loop 
?>

PHP代码将在PHP标记下,HTML将在PHP标记之外。

答案 2 :(得分:0)

所以基本上你想要: -

Page 1.  
 PROCESS POST FROM PREVIOUS PAGE (ie none until page 2)  
 Get nominees that need questions answered LIMIT 1.  
 IF NO RESULTS:
    SAY "thank you - all finished"  
 OTHERWISE:
    display nominee details  
    loop through questions 1-9  
    post form to this script -> this will be page 2