SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 23.12.2009, 14:59:33
olli2009 olli2009 ist offline
Anfänger
 
Registriert seit: Dec 2009
Alter: 43
Beiträge: 3
Vorkommen einer zweiten Tabelle von der Ergebnismenge der ersten Tabelle ausschließen

Hallo SELFPHP-Gemeinde!

Ich habe mir selbst eine Aufgabenstellung auferlegt, die ich alleine nicht lösen kann und hoffe ihr könnt mir helfen.

Ich habe eine Art Quiz erstellt - Die Fragen befinden sich in einer Tabelle.
Nun möchte ich aber, dass ein Benutzer nicht die selbe Frage zwei mal bekommt.

Daher habe ich mir eine zweite Tabelle angelegt, in der der aktuelle Benutzername eingetragen wird und die Frage-ID von der Frage, die er gerade beantwortet hat.

sieht in etwa so aus

Tabelle1
-----------
frageid
frage
antwort1
antwort2

Tabelle2
-----------
benutzername
frageid

Nun scheitere ich aber kläglich an der select-Abfrage, wie der aktuelle Benutzer "Horst" alle Fragen aufgelistet bekommt, ausser die, die in Tabelle2 schon mit frageid und seinem Benutzer auftauchen.

Ist so etwas zu realisieren?
Für einen Stupps in die richtige Richtung danke ich euch schon jetzt!

Olli
Mit Zitat antworten
  #2  
Alt 23.12.2009, 16:23:37
Benutzerbild von Domi
Domi Domi ist offline
Senior Member
 
Registriert seit: Nov 2003
Ort: Kempten @ Allgäu
Alter: 36
Beiträge: 1.408
AW: Vorkommen einer zweiten Tabelle von der Ergebnismenge der ersten Tabelle ausschli

Hi,

ja kannste realisieren.

Kleiner Tipp "WHERE NOT HAVING (SELECT * FROM tabelle2) ....."

so in etwa sollte das klappen... musste bissle Doku lesen und bissle rumprobieren, habs au net im Kopf gerade.

Domi
__________________

the best way to be ready for the future is to invent it
Mit Zitat antworten
  #3  
Alt 23.12.2009, 16:27:04
olli2009 olli2009 ist offline
Anfänger
 
Registriert seit: Dec 2009
Alter: 43
Beiträge: 3
AW: Vorkommen einer zweiten Tabelle von der Ergebnismenge der ersten Tabelle ausschli

Dankeschön Domi, ich versuch´s!
Mit Zitat antworten
  #4  
Alt 23.12.2009, 16:30:02
Benutzerbild von Domi
Domi Domi ist offline
Senior Member
 
Registriert seit: Nov 2003
Ort: Kempten @ Allgäu
Alter: 36
Beiträge: 1.408
AW: Vorkommen einer zweiten Tabelle von der Ergebnismenge der ersten Tabelle ausschli

Musst halt bei dem 2. Select die mit WHERE deine Bedingungen richtig angeben, aber das schaffst du schon!

Freu mich deine Lösung hier lesen zu dürfen....

Domi
__________________

the best way to be ready for the future is to invent it
Mit Zitat antworten
  #5  
Alt 23.12.2009, 18:04:38
olli2009 olli2009 ist offline
Anfänger
 
Registriert seit: Dec 2009
Alter: 43
Beiträge: 3
AW: Vorkommen einer zweiten Tabelle von der Ergebnismenge der ersten Tabelle ausschli

Domi, ich glaub ich hab´s.

Ich bin mit dem NOT HAVING auf keinen grünen Zweig gekommen, da mir MySQL sagte, dass das Subquery mehr als ein Ergebnis liefert (Ist auch der Fall, wenn eine Person schon mehrere Fragen beantwortet hat)

Obwohl ich schon das eine oder andere Mal gelesen hab, das in einem Query noch mal ein Query vorkommen kann, benutze ich das heut zum ersten mal.


Mein Lösungsansatz, der bisher zu funktionieren scheint:

SELECT *
FROM tabelle1
WHERE id NOT
IN (
SELECT frage
FROM tabelle2
WHERE user = 'olli'
)
ORDER BY RAND( )
LIMIT 5
Mit Zitat antworten
  #6  
Alt 26.12.2009, 22:20:18
Benutzerbild von Domi
Domi Domi ist offline
Senior Member
 
Registriert seit: Nov 2003
Ort: Kempten @ Allgäu
Alter: 36
Beiträge: 1.408
AW: Vorkommen einer zweiten Tabelle von der Ergebnismenge der ersten Tabelle ausschli

ei ei, sollte nicht all zu sehr in Eile schreiben .. natürlich meine ich "NOT IN", da hast du vollkommen Recht! Wenn man aber auch immer 5 Sachen gleichzeitig machen muss *grrr*

.. freut mich aber, dass ne Lösung hast!!

Domi
__________________

the best way to be ready for the future is to invent it
Mit Zitat antworten
  #7  
Alt 29.12.2009, 08:43:35
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: Vorkommen einer zweiten Tabelle von der Ergebnismenge der ersten Tabelle ausschli

Hi

mach mal ein explain vor deinem select in phpmyadmin das zeigt dir vielleicht
weitere nützliche Ergebnisse.
Denke du wirst wenn mehr als 100 Leute mit mehr als 100 Fragen in der DB sind
abfragezeiten haben die etwas höher sind. Aber das solltest du mit Testeinträgen
und explain eingrenzen.

Versuch doch das ganze mit einem join zu lösen.
z.B.
Code:
select a.* from fragen as a left join userfragen as b on a.fragenid=b.fragenid
where b.fragenid is null and b.userid=X
MfG

Ckaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
Antwort

Stichworte
ausschliessen, ergebnisse, tabellen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Daten nach Spalteninhalte aus anderer Tabelle sortieren paedda MySQLi/PDO/(MySQL) 2 14.05.2009 15:46:15
Tabelle in einem "fremden" Tag erzeugen Weide HTML, CSS und JavaScript Help! 18 06.02.2009 16:13:01
Tabelle verliert Datensätze ?! TuxCommander MySQLi/PDO/(MySQL) 5 26.05.2008 17:11:03
Problem dynamische Tabelle aber wie? Pixelschubser PHP für Fortgeschrittene und Experten 1 08.10.2005 19:16:24
MySQL - tabelle in tabelle Gweilo PHP für Fortgeschrittene und Experten 4 09.11.2002 19:41:57


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:44:13 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt