php anket döngü sorgu

3 Cevap

i want to make a multi-question poll in steps. i want the questions to be displayed one after the other in sequence and the questions should be pulled from the DB.

i başarıyla DB'den bir soru getiriliyor duyuyorum. kullanıcı bir soru için bir sonraki soruya kullanıcıyı almalıdır Gönder tıkladığında ama o iş yapmak istiyorum yoludur.

$query = "SELECT qid, qtitle FROM questions where qid = $qid";
$result = mysql_query($query) or die("ERROR: $query.".mysql_error());
// if records are present
if (mysql_num_rows($result) > 0) {
$row = mysql_fetch_object($result);

// get question ID and title
$qid = $row->qid;
    echo '<div id=ques>';
echo '<h2>'.$row->qtitle .'</h2>';
    echo '</div>';

Birisi bu tür sorgu için döngü ve yapıları ile lütfen bana yardımcı olabilir?

i sorular için ayrı sayfaları yapmak istemiyorum.

3 Cevap

Sen forumunda gizli bir alanda soru numarasını saklamak olabilir.

if (isset($_POST["qnum"])) {
    $questionNum = (integer) $_POST["qnum"];
} else {
    $questionNum = 0;
}

$query = "SELECT qid, qtitle FROM questions where qid = $qid";
$result = mysql_query($query) or die("ERROR: $query.".mysql_error());
// if records are present
if (mysql_num_rows($result) > $questionNum) {
    for ($_i = 0; $_i < $questionNum; $_i += 1)
        $row = mysql_fetch_object($result);

    // get question ID and title
    $qid = $row->qid;
    echo '<input type="hidden" value="$qnum" />';
    echo '<div id=ques>';
    echo '<h2>'.$row->qtitle .'</h2>';
    echo '</div>';
}

Yani bir HTML biçiminde konum varsayarak bulunuyor. Değilse, sen $ _SESSION değişkeni saklayın olabilir.

Ben bu yaklaşım ediyorum yolu (ben onların cevap girmek için kullanıcı için bir form var varsayarak yaşıyorum?) Form üzerinde gizli bir alan olarak sonraki soru id göndermektir.

Eğer sayfayı yüklemek ilk kez, bir soru kimliği var etmeyeceğiz, bu yüzden sadece ilk kapmak istiyorum. Sonra aynı sayfada, bir sonraki soru kimliği almak için bir sorgu yazmak istiyorum. Sen gizli alanına koymak istiyorum:

<input type="hidden" name="questionID" value="<?php echo $nextID ?>">

When the page is resubmitted you have a $_POST['questionID']; variable that you can use to generate the next question with.

Muhtemelen birden fazla sayfa kullanmak istemiyorum belirtilen beri, bunu yapmak için en kolay yolu sayfadaki tüm soruları listelemek için, ama ilk ama tüm gizlemek istiyorum. Sonra kullanıcı tıkladığında "sonraki" o kadar ilk gizler ve ikinci gösterir ve ne zaman.

$query = "SELECT qid, qtitle FROM questions ORDER BY qid ASC";
$result = mysql_query($query) or die("Error: $query.".mysql_error());

while ($row = mysql_fetch_object($result)) {
    echo "<div class='question' id='$row->qid'><h2>$row->qtitle</h2></div>";
}

echo "<button type='button' id='button'>Next</button>";

Ve sonra bu gibi bazı kod yazmak için jQuery kullanabilirsiniz:

$(function() {
    $current_question = 1;
    $(".question").each (function () {$(this).hide();})
    $("#"+current_question).show();

    $("#button").click(function() {
        $("#"+current_question).hide();
        current_question++;
        $("#"+current_question).show():
    })
)}