2017-08-05 1 views
1

mein Projekt Stapel in dieser Ausgabe unten holen Sie Mitglied,SQL Inner jedes Mal unterschiedliche Ergebnisse

ich habe 2 Tabellen quiziz (durch Lehrer gefüllt) haben 10 cols

id, dept, Betreff Frage , ANS1, ans2, ans3, ans4, correct_ans, techername

und Studenten haben 7 cols

id, Benutzername, Passwort, Benutzertyp, dept, Thema, Antworten

, wenn der Benutzer in (erfolgreich) in dborad.php angemeldet er Links sehen wird jeder Link, ihn zu verschiedenen Quiz in quiz.php nehmen Seite (mit Get-Methode, um Thema und Abteilung für Student) zu bekommen, in dieser quiz.php Seite wird er sein Quiz mit 4 Antworten sehen, mein Problem ist die innere Verbindung funktioniert nicht, es soll Quiz für spezifische holen Thema, dass er aus dborad.php mit einigen Fragen wählen, die sich von anderen Studenten unterscheidet, aber es ist nicht

dboard.php

if (isset($_SESSION['username'])) { 
if ($_SESSION['usertype'] === "isstudent") { 
$SQLgetParea = "SELECT * From students WHERE username = '$_SESSION[username]' "; 
      $SQLgetPareaResult = mysqli_query($conn,$SQLgetParea); 
      $SQLgetPareaRow = mysqli_fetch_array($SQLgetPareaResult,MYSQLI_NUM); 
      $getDept = $SQLgetPareaRow[4]; 

      $sql2 = "SELECT students.*, quiziz.* 
         FROM students 
         INNER JOIN quiziz 
         ON students.dept=quiziz.dept 
         AND students.subject = quiziz.subject 
         WHERE students.dept = '".$getDept."' 
         "; 
       $result2 = mysqli_query($conn,$sql2); 

       while ($row2 = mysqli_fetch_array($result2,MYSQLI_NUM)) { 
        echo " 
      <a href='quiz.php?subject=".$row2[5]."?dept=".$row2[4]."'>Enter Exam for ".$row2[5]."</a> 
      <br><br>"; 
     } 
} 
} 

quiz.php

if(isset($_SESSION['username'])){ 
       if ($_SESSION['usertype'] === "isstudent") { 

       $conn->query("SET NAMES utf8"); 
       $conn->query("SET CHARACTER SET utf8"); 

       $SQLgetParea = "SELECT * From students "; 
       $SQLgetPareaResult = mysqli_query($conn,$SQLgetParea); 
       $SQLgetPareaRow = mysqli_fetch_array($SQLgetPareaResult,MYSQLI_ASSOC); 
       $getSub = $SQLgetPareaRow['subject']; 

       $sql2 = "SELECT quiziz.*, students.* 
         FROM quiziz 
         INNER JOIN students 
         ON quiziz.dept=students.dept 
         AND quiziz.subject = '".$getSub."' "; 
       $result2 = mysqli_query($conn,$sql2); 

       while ($row2 = mysqli_fetch_array($result2,MYSQLI_ASSOC)) { 

        echo " 
        <li>".$row2['question']."</li> 
        <li><div class='ruler'></div></li> 
        <li>".$row2['ans1']."</li> 
        <li>".$row2['ans2']."</li> 
        <li>".$row2['ans3']."</li> 
        <li>".$row2['ans4']."</li> 
        "; 
       } 

       } 
      } 
+0

Haben Sie überprüft, dass Ihr $ getSub nicht leer ist? Bitte geben Sie die auszuführende SQL und die Tabellenzeilen Ihrer Tabelle an. – k3rn3llp4n1c

+0

lieber @ k3rn3llp4n1c war ich einige Fehler haben und seine feste ok ich diese Zeile Code ersetzen 'Enter Exam for ".$row2[5]."

„'mit dieser Linie' Enter Exam for ".$row2[5]."

' –

+0

aber noch verschiedene Fragen für jeden Benutzer holen müssen, eine Idee? –

Antwort

0

diferent Frage für jeden Benutzer zu holen, eine Frage Tabelle erstellen und eine ID für jede Frage zuweisen Sie anzeigen möchten Ihre Benutzer.

Danach müssen Sie nur einen Vektor mit einer zufälligen Funktion erstellen, um diese Fragen nach ID aus Ihrer Datenbank zu holen. Ändern Sie die Spaltenfrage von quizes in question_id. Dies ist ein Fremdschlüssel für Ihre kürzlich erstellte Tabelle.

+1

das ist genau das, was iam sucht, danke für Ratschläge :) es hilft mir sehr #Accepted –

Verwandte Themen