Aus einer Tabelle sollen Daten nur dann entnommen werden, wenn deren id in einer anderen Tabelle nicht genannt ist.
D.h.:
Wenn die Tabelle tipp_db eine Zeile enthält, die die game_id einer Zeile der games_db ist, dann sollen mir diese Daten der games_db ausgegeben werden.
[code]games_db
id | … |
1 | … |
2 | … |
tipp_db
id | game_id |
1 | 1 |[/code]
→ Hier würde er mir dann die erste Zeile der games_db mit der id = 1 ausgeben.
Vielleicht habt ihr ja Ideen.
Ich habe es bisher in mit zwei While Schleifen gemacht, ABER das funktioniert so natürlich nicht.
So, habe mich mal über JOIN informiert und ein wenig ausprobiert.
Mittlerweile bin ich so weit, dass ich mit dem Code s.u. alle Spiele mit eingegangenem Tipp anzeigen kann.
Ich möchte allerdings, dass er mir die Spiele anzeigt, die noch keinen Tipp erhalten haben.
Dies ist aber durch „A2.game_id != A1.id“ nicht möglich, wie dann?
Wenn ich trotzdem benutze, sortiert er die bereits eingegangenen Tipps nicht aus und zeigt die Spiele 3-4fach an.
Also da scheint es Probleme mit der While-Schleife zu geben.
[php]
$sql_befehl2 = "
SELECT
A1.id id, A1.timestamp timestamp, A1.game1 game1, A1.game2 game2, A1.liga_id liga_id
FROM
cd_fb_games_db A1, cd_fb_tipp_db A2
WHERE
A2.game_id = A1.id
AND
stat = 1
";
Mach es so:
[php]
$resultat2 = mysql_query($sql_befehl2) OR die(mysql_error());
[/php]
So überprüfst du deine Query. Sehrwarscheinlich liegt der Fehler meistens dort. (Bei mir wars immer so :D)
Habe nochmal mit jemandem gesprochen, der sich auch näher damit befasst hat.
Der ganze Ansatz ist falsch… :oops:
Es wird nämlich eine ID genommen und überprüft, welche IDs aus dem anderen Feld nicht dazu passen.
Das sind logischerweise alle, die nicht gleich der ersten ID sind.
Ich muss aber überprüfen, ob überhaupt eine zweite ID vorhanden ist, die zur ersten passt.