Ankündigung

Einklappen
Keine Ankündigung bisher.

GROUP BY Problem

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • GROUP BY Problem

    Hi @ all,

    Also ich hab 2 Tabellen....

    Tabelle 2:
    CREATE TABLE IF NOT EXISTS `flex_answer` (
    `ID` int(10) NOT NULL auto_increment,
    `answer` varchar(300) default NULL,
    `questionID` tinyint(10) default NULL,
    `correct` tinyint(1) default NULL
    )

    Tabelle 1:
    CREATE TABLE IF NOT EXISTS `flex_question` (
    `ID` int(10) NOT NULL auto_increment,
    `question` varchar(350) default NULL,
    `imagePath` varchar(100) NOT NULL,
    `subjectID` tinyint(2) default NULL,
    `active` tinyint(1) default NULL
    )

    In Tabelle 1 (flex_question) ist jeweils ein Datensatz pro Frage.
    In Tabelle 2 (flex_answer) sind 4 Datensätze pro Frage gespeichert (4 Antwortmöglichkeiten)

    Was ich nun brauch....
    Ich brauch zu jeder Frage alle 4 Antworten. Was nicht schwer ist.... das der SQL String dazu:

    SELECT flex_question.ID, flex_question.question, flex_question.imagePath, flex_question.active, flex_answer.answer, flex_answer.correct FROM flex_question INNER JOIN flex_answer ON flex_question.ID = flex_answer.questionID

    Wenn ich das nun eintippe bekomm ich pro Frage 4 Ausgabezeilen.... genau das will ich nicht.

    Ich möchte eine Ausgabezeile in der folgende Werte drin sind:
    flex_question.ID, flex_question.question, flex_question.imagePath, flex_answer.answer1, flex_answer.correct1, flex_answer.answer2, flex_answer.correct2, flex_answer.answer3, flex_answer.correct3, flex_answer.answer4, flex_answer.correct4

    Wenn ich nun diese Ausgabe hab soll das ganze noch ein Random bekommen.... das weis ich aber wie es geht... Das geht mit "ORDER BY RAND() LIMIT 15"

    Kann mir jemand pls helfen wie das mit dem GROUP BY und JOIN funktioniert?

    Thx im vorraus...

    Michael

  • #2
    bilde das in der Verarbeitung der daten ab. Du bildest ein array ala
    $arr[$id_der_frage]['frage'] = 'Frrage?';
    $arr[$id_der_frage]['antworten'] = array('antwort1','antwort2','antwort3','antwort4') ;

    Kommentar


    • #3
      Zitat von moevydotnet Beitrag anzeigen
      Wenn ich das nun eintippe bekomm ich pro Frage 4 Ausgabezeilen.... genau das will ich nicht.
      Ich möchte eine Ausgabezeile
      Das wirst du über SQL nicht erreichen, sondern musst das selber ausprogrammieren. Such mal im Forum nach Gruppenbruch oder Gruppenwechsel.

      Kommentar


      • #4
        Dann hol ich mir die Daten so:
        SELECT flex_question.ID, flex_question.question, flex_question.imagePath, flex_question.active, flex_answer.answer, flex_answer.correct FROM flex_question INNER JOIN flex_answer ON flex_question.ID = flex_answer.questionID WHERE flex_question.subjectID = '6'

        Und werde dann das ganze im Flex in ein Array speichern und lass es durch ein Random laufen...

        Thx...

        Kommentar


        • #5
          Beim Posten bitte [code] bbTags verwenden.

          Kommentar

          Lädt...
          X