SELECT Abfrage über zwei Tabellen

buddymaster

Mitglied
Guten Tag,

Ich habe ein MySQL Abfrage Problem.

Ich habe zwei Tabellen. In die eine speichere ich bestimmte Einträge, wie zum Beispiel den String: "Heute ist ein schöner Tag!" Außerdem wird in dieser Tabelle noch gespeichert, wer dies geschrieben hat und der Zeitpunkt. dies geht alles über ein Formular.

Nun hat ein zweiter die Möglichkeit, hierzu einen Kommentar abzugeben. Dieser wird dann in der zweiten Tabelle abgespeichert. Außerdem noch der Name vom Kommentator und die zugehörige ID der ersten Tabelle, damit man weiß, zu welchem Eintrag der Kommentar gehört.

Bei der Ausgabe gehe nun über einen SELECT- Befehl, der aber nicht funktioniert.
PHP:
$result = mysql_query("SELECT * FROM `uebergabe`, `kommentare` WHERE uebergabe.datum = '$heute' ORDER BY uebergabe.datum ASC");
In der nachfolgenden while Schleife werden dann z.B. Alle Einträge doppelt ausgegeben. Außerdem bekomme ich es nicht hin, die dazugehörigen Kommetare unter den jeweiligen Eintrag auszugeben.

Ich hoffe man konnte mir folgen und hoffe auf eure Hilfe!

PS: Beide Tabellen haben eine eindeutige Zuordung per ID (auto_increment)

Martin
 
Du musst die Tabellen über die ID des Original-Beitrags verbinden. Also:

Code:
SELECT * FROM `uebergabe`, `kommentare` 
WHERE uebergabe.id = kommentare.uebergabeid
AND uebergabe.datum = '$heute' 
ORDER BY uebergabe.datum ASC
 
Nach der Eingabe der folgenden Abfrage:
PHP:
SELECT * FROM `uebergabe`, `kommentare` WHERE (uebergabe.id_u = kommentare.id_uebergabe) AND (uebergabe.datum = '$heute') ORDER BY uebergabe.datum ASC
habe ich habe folgende Fehlermeldung:
Code:
Parse error: syntax error, unexpected T_VARIABLE in /kunden/225436_18057/webseiten/uebergabe_log2.php on line 286

Die Variablen stimmen meiner Meinung aber alle.

Das sind meine beiden Tabellen:
Tabelle 1
#########
uebergabe (Name der Tabelle)

id_u
datum
user
nachricht
#########

Tabelle 2
#########
kommentare (Name der Tabelle)

id
id_uebergabe
user_k
kommentar
#########
 
Das ist ein PHP-Parser-Fehler. Wir müssten schon den Code aus dem kompletten Kontext sehen. Poste doch bitte ein paar komplette Zeilen und nicht nur das SQL. Sehr wahrscheinlich hast du einen Quote-Fehler oder ein fehlendes Semikolon.
 
PHP:
$result = mysql_query("SELECT * FROM `uebergabe`, `kommentare` WHERE (uebergabe.id_u = kommentare.id_uebergabe) AND (uebergabe.datum = '$heute') ORDER BY uebergabe.datum ASC");
                             
if(mysql_num_rows($result)) {
while($row = mysql_fetch_object($result)) {

....
Der Fehler wird in genau der Zeile angezeigt (282)!
 
Schreib die Zeile so:

PHP:
$result = mysql_query("SELECT * FROM `uebergabe`, `kommentare` WHERE (uebergabe.id_u = kommentare.id_uebergabe) AND (uebergabe.datum = '".mysql_escape_string($heute)."') ORDER BY uebergabe.datum ASC");
 
Hmm, ich geh mal davon aus, das mysql_query() die Zeile 282 ist. Sieht das jetzt nur hier so aus, oder ist da tatsächlich ein Zeilen-Umbruch im Wort "AND"?

Und was kommt eigentlich vor der Zeile 282? Zeig mal ein paar Zeilen oberhalb.
 
..nutze einfach mal andere Schreibweisen der Stringzusammenführung. Mit Sicherheit wird der Fehler mit den Anführungszeichen zu tun haben. /wenn der Fehler wirklich in der Zeile ist/

PHP:
// fehler?
$sqlString = "SELECT * FROM `uebergabe`, `kommentare` WHERE (uebergabe.id_u = kommentare.id_uebergabe) AND (uebergabe.datum = '$heute') ORDER BY uebergabe.datum ASC";

// versuch mal
$sqlString = "SELECT * FROM uebergabe, kommentare WHERE (uebergabe.id_u = kommentare.id_uebergabe) AND (uebergabe.datum = '".$heute."') ORDER BY uebergabe.datum ASC";

mfg chmee
 
Zuletzt bearbeitet:
Ich glaube immer noch, das der Fehler oberhalb der Zeile liegt. Der Parser-Fehler sagt es eigentlich schon: $result wird an dieser Stelle nicht erwartet => wahrscheinlich Semikolon-Fehler.
 
Zurück