witch doctor Geschrieben 3. November 2006 Teilen Geschrieben 3. November 2006 Hallo, ich schreibe in PHP gerade ein Tool, womit man Fragebögen generieren und in einem Administrationsmenü auswerten kann. Jetzt habe ich allerdings ein Problem mit einer Abfrage. Folgendes: In einem Auswertungsmenü soll zwei Antworten in Beziehung gesetzt werden, also zum Beispiel: 4 Leute, die Antwort 1 angeklickt haben, haben auch Antwort 2 angeklickt. Sollte kein Problem sein, dachte ich. Das ganze sollte dann folgendermaßen aussehen: (Die Ergebnisse in der Darstellung sind falsch!) Die Antworten werden in einer Tabelle gespeichert, wo sie eine eindeutige AntwID erhalten. Die Antwortmöglichkeiten sind in einer extra Tabelle und sie sind genau einer Frage zugeordnet. In der Tabelle, wo die Antworten gespeichert werden, wird auch eine sogenannte Benutzer ID abgelegt, damit dies genau einem Benutzer zugeordnet werden kann (Der Benutzer bleiber aber weiterhin anonym.). Der Benutzer sollte ebenfalls eine Periode angeben können, was kein Problem darstellt. Wann ein Fragebogen ausgefüllt wurde, wird in der Tabelle Periode abgelegt. Wie kann ich das in einer SELECT Anweisung unterbringen? Das ganze sollte die Anzahl der Zeilen zurückliefern, also einen Count durchführen. Der erste Versuch mit AND lieferte leider nur 0 Zeilen. Wenn ich also ein (mal ohne Count): SELECT * from beantwortet (hier werden die Antworten gespeichert), Periode WHERE antwort='Two Face' and antwort='über 29' and datum>='2006-10-01' and datum<='2006-11-01' liefert MySQL als Ergebnis 0 Zeilen zurück, obwohl 1 Zeile richtig wäre. Der IN Operator bringt auch nicht viel, da es ja ein ODER ist, allerdings brauche ich ein UND. Ich hoffe ihr könnt mir helfen, habe schon einen Knoten im Hirn. Hoffe auch, dass ich es einigermaßen verständlich beschrieben habe. Als Ergebnis soll die Tabelle (mit richtigen Ergebnissen) herauskommen. Edit: Als DBMS nehme ich MySQL. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Pinhead Geschrieben 3. November 2006 Teilen Geschrieben 3. November 2006 Das da 0 rauskommt liegt daran, das du zweimal das Feld "Antwort" abfragts. Zum einen soll es den Wert "Two Face" haben und gleichzeitig "über 29". Das kann nicht klappen. Wie ist denn die Tabelle beantwortet aufgebaut ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
witch doctor Geschrieben 3. November 2006 Autor Teilen Geschrieben 3. November 2006 Hallo, die Tabelle beantwortet hat folgenden Aufbau: Die bid dient dazu, die Antworten genau einem Benutzer zuordnen zu können. Mit Hilfe der frageid kann die Antwort der Frage zugeordnet werden. In Antwort steht die gewählte Antwort des Benutzers. Habe es gerade auch mit dem Mengenoperator UNION versucht, aber das bringt auch nicht das gewünschte Ergebnis. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
witch doctor Geschrieben 3. November 2006 Autor Teilen Geschrieben 3. November 2006 Ich glaube ich denke zu kompliziert. Werde es mal mit zwei getrennten Abfragen versuchen und mein Ergebnis hier posten. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Pinhead Geschrieben 3. November 2006 Teilen Geschrieben 3. November 2006 Ist den das Alter des Benutzers an den Benutzer gebunden oder gibt der das tatsächlich in das Feld Antwort ein ? Ich hätte jetzt gedacht das es eventuell eine Art "Kategorie" gibt in der dann festgehalten wird in welcher Altersgruppe der befragte liegt Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
witch doctor Geschrieben 3. November 2006 Autor Teilen Geschrieben 3. November 2006 Das Alter gibt er an. Habe aber jetzt die Lösung. Anstatt eine Abfrage zu nehmen, verarbeite ich das in 2. In der ersten Abfrage gucke ich, wer die erste Antwort angeklickt hat und ziehe mir daraus die bid. Dies kann ich in der zweiten Abfrage als Ausschlusskriterium nutzen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.