Daten aus 2 MySQL Tabellen lesen...

Hi liebe Progger..

Habe leider zu diesem Thema noch keine wirklich aufschlussreiche Lösung für mein Problem gefunden und möchte mein Problem deshalb schildern, in der Hoffnung, das mir jemand schnell erklären kann, wies geht :p .

Und zwar hab ich ein Problem. Ich bin gerade dabei eine Seite einzurichten, in welcher Newseinträge (also Artikel) angezeigt werden. Wenn man auf einen Newseintrag klickt, wird der komplette Artikel dazu angezeigt. Mein Problem liegt eigentlich nur darin, dass ich gerne aus der Tabelle artikel (da wo die newseinträge drinstehen) und der Tabelle Benutzer (derjenige der den Newseintrag erstellt) die Daten zu dem einzelnen Artikel auslesen möchte...also ich habe die ID des benutzers in der Tabelle Artikel drin...aber hier mal der code, in dem ich einfach mal den titel und den text des newseintrages darstelle...

(vereinfacht dargestellt)
Code:
$artikelid = $_GET["artikel_id"];
 
$abfrage = "SELECT * FROM artikel WHERE pk_artikel =$artikelid";
$ausfuehren = mysql_query($abfrage,$conn) or die(mysql_error());
 
 
   while ($anzeige = mysql_fetch_array($ausfuehren)) {
 
   $titel = stripslashes($anzeige['art_titel']);
   $text = stripslashes($anzeige['art_volltext']);
   $autor = $anzeige["fk_benutzer"]; //hier steht die ID aus der Tabelle Artikel mit der ich den Benutzer aus der Tabelle Benutzer auslesen möchte
 
   echo $titel;
   echo $text;
   echo "erstellt von ".hier sollte nun die variable für den artikelautor stehen;
 
   }

kann mir einer sagen, wie ich jetzt aus der tabelle benutzer den benutzer auslesen und den benutzernamen miteinfügen kann, in der selben schlaufe?

Danke für eure Hilfe
 
Hi, erstmal danke für die Antwort
jedoch...das mit den Joins versteh ich noch nich so ganz...resp. ich versteh dein konkretes Beispiel für mein Problem nicht ...kannst mir das kurz noch erläutern, was du mit den einzelnen namen da gemeint hast?

kannst du mir dann auch sagen wie ich nachher den benutzernamen ausgeben kann?
also:

Code:
echo   $variable["was kommt hier"]; ?
 
Zuletzt bearbeitet:
Noch konkreter ..

Gegeben sei:

[tblartikel]
id: 1
user_id: 1
text: blabla

[tbluser]
id: 1
username: Peter

PHP:
$artikelid = 1;

$result = mysql_query("SELECT a.*, u.username AS name FROM artikel AS a INNER JOIN tbluser AS u ON (u.id = a.user_id) WHERE a.pk_artikel = '".$artikelid."'");

$anzeige = mysql_fetch_array($result);

echo $anzeige['text']." geschrieben von ".$anzeige['name'];
 
so hab das mal mit meinen konkreten angaben gefüllt

sag mir ob ich das richtig verstanden hab :-p
Code:
$sql = "SELECT * FROM artikel INNER JOIN benutzer ON (benutzer.pk_benutzer = artikel.fk_benutzer) WHERE artikel.pk_artikel = $artikelid"

es klappt jedoch noch nicht. Ich krieg die Fehlermeldung, dass es die Spalte benutzer.pk_benutzer nicht gäbe...

vielleicht könntest du nochmal das statement mit meinen angaben (siehe unten) füllen, damit ichs gleich habe

tabellen = artikel und benutzer
spalten = fk_benutzer, pk_benutzer
 
HTML:
$abfrage = "SELECT * FROM artikel WHERE pk_artikel =$artikelid";

Diese must du mit LEFT JOIN oder einem anderen JOIN - "INNER" z.b. - erweitern, wenn ich das richtig sehe.

Du rufst ja hier nur von der Tabelle "artikel" alles auf jedoch musst du noch mit LEFT JOIN alles aus der anderen Tabelle aufrufen.

SELECT "*
FROM first_table
INNER JOIN second_table
ON first_table.pk_artikel = anweisung
AND second_table.spalte = anweisung

beim AND bin ich mir nicht sicher aber glaube das geht. Ansonsten mit Komma trennen
 
Zuletzt bearbeitet:
och man, danke euch :-p hab meinen Fehler endlich gefunden...wieder mal so n fehler wo man sich nächte lang die zähne ausbeisst, bis man merkt was man falsch gemacht hat :p

danke nochmals!
 
Zurück