打破循环并获得计数

时间:2015-07-01 10:39:20

标签: php mysql

我无法打破while循环。

<?php $quizsections = mysql_query("SELECT * FROM quiz_sections");
while($quizsectionsrslt = mysql_fetch_array($quizsections)){
    $quizsectionsid        = $quizsectionsrslt['id'];
    $quizsectionsheading   = $quizsectionsrslt['heading'];
    $quizsectionsquizid    = $quizsectionsrslt['quizid'];
    $quizsectionsfirstslot = $quizsectionsrslt['firstslot'];
    echo $quizsectionsheading."<br />";

    $quizslots = mysql_query("SELECT * FROM quiz_slots WHERE `quizid`=$quizsectionsquizid");
    while($quizslotsrslt = mysql_fetch_array($quizslots)){
        $quizslotids = $quizslotsrslt['questionid'];
        $questions = mysql_query("SELECT * FROM question WHERE `id`=$quizslotids");

        while($questionsrslt = mysql_fetch_array($questions)){
            echo $questiontext = $questionsrslt['id']."<br />";
        }
    }
}?>

显示输出

Aptitude

  

1 2 3 .... 40

Arithmetic

  

1 2 3 ... 40

Reasoning

  

1 2 3 ... 40

Computers

  

1 2 3 ... 40

但我想要的输出

Aptitude

  

1 2 3 ... 10

Arithmetic

  

11 12 13 ... 25

Reasoning

  

26 27 28 ... 30

Computers

  

31 32 33 ... 40

表格结构

enter image description here

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

您将需要在MySQL查询上使用LIMIT来根据第一个插槽更改输出

<?php $quizsections = mysql_query("SELECT * FROM quiz_sections");
while($quizsectionsrslt = mysql_fetch_array($quizsections)){
    $quizsectionsid        = $quizsectionsrslt['id'];
    $quizsectionsheading   = $quizsectionsrslt['heading'];
    $quizsectionsquizid    = $quizsectionsrslt['quizid'];
    $quizsectionsfirstslot = $quizsectionsrslt['firstslot'];
    echo $quizsectionsheading."<br />";

    $quizslots = mysql_query("SELECT * FROM quiz_slots WHERE `quizid`=$quizsectionsquizid LIMIT ".($quizsectionsfirstslot-1).", 10");
    while($quizslotsrslt = mysql_fetch_array($quizslots)){
        $quizslotids = $quizslotsrslt['questionid'];
        $questions = mysql_query("SELECT * FROM question WHERE `id`=$quizslotids");

        while($questionsrslt = mysql_fetch_array($questions)){
            echo $questiontext = $questionsrslt['id']."<br />";
        }
    }
}?>

答案 1 :(得分:0)

您可以通过添加以下内容来停止执行循环:

break;

在您要停止的行