2013-03-21 26 views
-1

我目前正在設計一個調查型系統,其中系統顯示使用while循環投票的人數。不幸的是,我不知道如何創建頁面,相反,我只能將整個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命令收集的項目數量。

+1

呃,對不起!那裏有一些問題嗎? – hjpotter92 2013-03-21 11:22:23

+0

有什麼問題? – 2013-03-21 11:26:22

+0

呃你是什麼意思?標題說明了這一點。我在問如何將循環迭代分離到不同的頁面中,而不是完整的運行頁面。 – 2013-03-21 11:27:15

回答

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_*功能

+0

不,不是這樣,我正在重新打印每個與要投票的項目數量(提名人數)有關的問題。 另外,我使用的是mysql_ *函數,因爲我是新來的這個東西,我已經開始我的項目了..沒有多少時間留下來重做一切..對不起 – 2013-03-21 11:30:05

+0

在這種情況下,你應該首先提取所有問題並將它們存儲在一個數組中,讓我們說'$ questions',然後獲取所有提名者並在被提名者循環中放置一個'foreach'循環,基本上是一個嵌套循環。 – Uby 2013-03-21 11:42:48

+0

那麼,如果我這樣做,我會忽略任何時間循環? – 2013-03-21 14:33:48

0

如果我有你的問題,然後我認爲你可以這樣做:

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

PHP代碼將來到PHP標記和HTML將超出PHP標記。

+0

那麼..這將如何終止while循環實際發生? – 2013-03-21 14:33:04

+0

終止大括號,'}'將處理它。你不需要擔心這一點,while循環會終止,只要它會看到'}' – 2013-03-21 14:34:32

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 
+0

我完全不知道如果沒有結果部分,但基本上,是的,這就是我想要發生的事情。但是,來自第1頁的信息仍然會張貼到摘要頁面中,而不是第2頁本身。我會做一個邏輯來收集每一頁的所有答案,但我真正的問題是如何自己製作頁面。 – 2013-03-21 14:32:23

+0

當問題得到解答時,他們不應該被視爲被提名人,否則你將陷入無限循環。 – Waygood 2013-03-21 14:46:56

+0

我明白了,但我怎麼能夠實現它,每個被提名人​​只顯示一組問題? – 2013-03-21 15:08:31

相關問題