2 Tabellen

aRaneus

Grünschnabel
Hi,
wie kann ich auf zwei tabellen zugreifen ?

Ich habe eine tabelle in der die news eingetragen werden:
titel,name,email,text ...
Und eine in der die Comments gespeichert werden:
titel,name,email

In der Commentstabelle werde unter dem namen der news (titel) die Einträge gespeichert ! Wie kann ich nun aber die einträge für eine Bestimmte news anzeigen lassen zB. (10) Kommentare.
Ich meine das so wie bei dem Newssystem von tutorials.de

Ich habe es bislang so versucht:
PHP:
<?
...
$db = mysql_db_query($database,"select * from news order by id desc");
...
for($i=0;$i<$anzahl_der_newseinträge;$i++);
$db2 = mysql_db_query($database,"select titel from news_comments");
$comments = mysql_num_rows($db2);
...
echo"($comments) Kommentare";
...


Vielen Dank für eure Hilfe
 
fehler

Ooops


$db2 = mysql_db_query($database,"select titel from news_comments");

ist FALSCH soll heißen

$db2 = mysql_db_query($database,"select * from news_comments where titel = $titel");
 
Ich mach sowas immer mit zwei Abfragen. Erstmal fragst Du ja alle Newseinträge ab:
Code:
SELECT * FROM news ORDER BY id DESC
Danach lässt Du ja wahrscheinlich eine Schleife laufen, die jeden Datensatz anzeigt. Und dann willst Du ja zu jedem Datensatz der News entsprechend die Kommentare anzeigen - also noch eine zweite Abfrage:
Code:
SELECT * FROM news_comments WHERE news_id = " . $ersteAbfrage['id']

Insgesamt sollte das dann etwa so aussehen:
Code:
$res1 = mysql_query("SELECT * FROM news ORDER BY id DESC", $db);
while ($row1 = mysql_fetch_array($res1))
{
    // News ausgeben
    $res2 = mysql_query("SELECT * FROM news_comments WHERE news_id = " . $row1['id'], $db);
    $row2 = mysql_fetch_array($res2);
    // Kommentare dazu ausgeben
    mysql_free_result($res2);
}
mysql_free_result($res1);
 
oder so:
PHP:
SELECT B.Newstitle, B.Newsdate, B.Newsmessage, COUNT(N.Newsid)
 Comments, N.Comment, N.Commentdate, N.Commenttitle FROM news B LEFT
OUTER JOIN news_comments C ON B.Newsid = N.Newsid

Am Ende kannste noch ein WHERE dranhängen wie du eben willst.
Hab mir Zeilen ausgedacht aber ich hoffe du verstehst das Prinzip!
Müsste eigentlich laufen habs gerade mal so ausm Kopf zusammengetippt.
 
Sorry, wenn ich störe, habe aber ein etwas anderes Problem.


Und zwar habe ich auch 2 Tabellen.
Einmal produkte und warenkorb...

Die Tabellen sollen über das Feld pid verknüpft werden. Ich habe es schon so versucht, doch es klappt nicht...

SELECT produkte.name, produkte.firma, produkte.anzahl, produkte.pid, warenkorb.pid, warenkorb.sid FROM warenkorb LEFT
OUTER JOIN produkte ON warenkorb.pid = produkte.pid WHERE warenkorb.sid = '$sid'

Wo liegt der Fehler?

Danke für euere Hilfe.

Alex
 
Wenn ich das richtig sehe, suffix, fragst du mit deiner Variante ALLE Produkte ab, egal, ob sie zu einem Warenkorb gehören oder nicht.

Du willst aber alle Produkte, die zu einem bestimmten Warenkorb gehören. Also solltest du (bei dieser Reihenfolge in deinem SELECT-Befehl) einen RIGHT JOIN benutzen.
Dann wird der Warenkorb selbst dann angezeigt, wenn ihm kein Produkt zugeordnet ist.
 
Kommt drauf an, wie die Tabellen und Felder heissen und was genau du abfragen willst - aber prinzipiell ja.

PS: Nimm doch bitte das Bild raus, das ist Tierquälerei.
Da läufts mir immer kalt den Rücken runter.
 

Neue Beiträge

Zurück