2017-04-01 2 views
1

Ich habe eine Seite (exam.php) erstellt, wo ich Fragen nacheinander zeigen möchte.Wie wird eine Zeile zu einer Zeit angezeigt, wenn ich nächste Zeile nächste Zeile in PHP klicken?

Wenn ein Student nach dem Absenden einer Antwort auf die nächste klickt, möchte ich, dass die nächste Frage angezeigt wird.

<?php 
    if(!isset($_SESSION['qno'])) 
     $_SESSION['qno'] = 1; 
    else{ 

     if(isset($_POST['next'])) 
     { 
       $_SESSION['qno'] += 1; 
     } 

    } 


    $sql ="select * from question where question_id= ' ".$_SESSION['qno']." ' "; 
    $query=mysql_query($sql); 
    while($row = mysql_fetch_assoc($query)) 
    { 
     $question =$row['question']; 
     $op1 = $row['option1']; 
     $op2 = $row['option2']; 
     $op3 = $row['option3']; 
     $op4 = $row['option4']; 


    } 

    ?> 

Es funktioniert, aber in diesem Code verwende ich question_id, um Daten anzuzeigen. Das Problem tritt auf, wenn der Administrator einige Fragen löscht, die aufgrund von question_id gap nicht funktionieren.

Ich initialisiere question_id = 1; Was ist die beste Lösung für dieses Problem?

+0

Sie auch die mysqli_ Funktionen zu verwenden, anstatt schalten soll. –

Antwort

0

Sie könnten LIMIT verwenden, um die Frage statt Frage ID auszuwählen.

+0

ok, aber wie die nächste Frage nach der vorherigen Frage anzeigen? – brij

+0

In der angezeigten Seite oder dem Code, der sie generiert, erhöhen Sie $ q_no. Um zurückzugehen, dekrementieren Sie es. –

0

Zuerst müssen Sie die aktuelle ID von jeder Seite zur nächsten übertragen. Du hast es durch $_SESSION["qno"] getan.

Jetzt müssen Sie Ihre Abfrage ändern und dieses Programm ausführen:

$sql ="select top 1 * from question where question_id>{$_SESSION['qno']} order by question_id"; 
$query=mysql_query($sql); 
while($row = mysql_fetch_assoc($query)) 
    { 
    $_SESSION['qno']=$row["question_id"]; 
    $question =$row['question']; 
    $op1 = $row['option1']; 
    $op2 = $row['option2']; 
    $op3 = $row['option3']; 
    $op4 = $row['option4']; 
    } 
+0

ohhh! Großartig seine Arbeit thankssssss – brij

+0

Vergessen Sie nicht zu wählen und als die richtige Antwort zu akzeptieren. –

Verwandte Themen