ilch Forum » Allgemein » HTML, PHP, SQL,... » Inhalt anderer Tabelle abrufen (join?)

Geschlossen
  1. #1
    User Pic
    DeathBoy Mitglied
    Registriert seit
    24.02.2010
    Beiträge
    182
    Beitragswertungen
    1 Beitragspunkte
    Hi,

    wer kann mir mal erklären wie ich einen Inhalt einer anderen Tabelle ermitteln.

    Beispiel: Ich lese Bilder aus der TAB1 aus. Die ID bei TAB1 entspricht der uid aus TAB2.
    Jetzt möchte ich anhand von WHERE von ID (von tab1) = UID (von tab2) den name ausgeben und unter den bild anzeigen lassen.
    kann mir da jemand mal zeigen wie der abfragebefehl aussehen muss?



    TAB1
    id || bildurl ||
    ------------------
    6 || img8.jpg ||
    8 || img4.jpg ||


    TAB2
    id || uid || name
    ----------------------
    1 || 6 || altersack
    2 || 8 || dummenuss

    betroffene Homepage: externer Link
    Tattoo und Piercing Community: externer Link
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    SELECT t1.id, t1.bildurl, t2.name FROM tab1 t1 LEFT JOIN tab2 t2 ON t1.id = t2.uid
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    DeathBoy Mitglied
    Registriert seit
    24.02.2010
    Beiträge
    182
    Beitragswertungen
    1 Beitragspunkte
    funktioniert, aber die namen passen nicht zu den bildern. aber das liegt denke ich an was anderen.


    Zuletzt modifiziert von DeathBoy am 27.03.2010 - 19:19:43
    Tattoo und Piercing Community: externer Link
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    DeathBoy Mitglied
    Registriert seit
    24.02.2010
    Beiträge
    182
    Beitragswertungen
    1 Beitragspunkte
    Hi,

    habe jetzt folgenden Code:

      $erg = db_query("SELECT t1.id, t1.uid, t1.endung, t2.id, t2.name FROM ic1_usergallery t1 LEFT JOIN ic1_user t2 ON t1.uid = t2.id");
    
      while($row = db_fetch_assoc($erg))
        {
    
    // Hier die Ausgabe der Einträge
        $class = ( $class == 'Cmite' ? 'Cnorm' : 'Cmite' );
        	echo "<div width=\"110px\" class=\"$class\">";
        	echo "<a href=\"index.php?user-usergallery-".$row['uid']."\"><img src=\"include/images/usergallery/img_thumb_".$row['id'].".".$row['endung']."\"></a>";
        	echo "<br><br>";
        	echo "<a href=\"index.php?user-usergallery-".$row['uid']."\">".$row['name']."</a>";
        	echo "</div>";
    	}


    Es werden aus der DB-Tabelle ca. 6 Bilder von insgesamt 14 Abgerufen. Müsste eigentlich alle auslesen. Der Username wird unter den Bild angezeigt, aber entspricht nicht den "Bildbesitzer" - wird als nicht richtig zugeordnet.
    Ausgabe erfolgt sozusagen bei beiden Tabellen Zeile für Zeile, ohne das die "id" von ic1_user der "uid" von ic1_usergallery zugeordnet wird.

    Woran kanns liegen?


    Zuletzt modifiziert von DeathBoy am 28.03.2010 - 12:01:23
    Tattoo und Piercing Community: externer Link
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    t1.id wird von t2.id überschrieben, du hast in $row['id'] also dann die userid. Für solche Fälle kann man ein alias vergeben t2.id AS userid was dann in $row['userid'] wäre, in dem Fall ist das aber eigentlich nicht notwendig, weil die Information in t1.uid ist, und auch von da abgerufen werden kann und somit t1.id nicht benötigt ist.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    DeathBoy Mitglied
    Registriert seit
    24.02.2010
    Beiträge
    182
    Beitragswertungen
    1 Beitragspunkte
    Danke Mairu, habe die t2.id rausgelöscht jetzt funktioniert es.

    Wer jetzt noch eine Blätterfunktion und einen Zellenumbruch einbauen, dann hab ich eine Mod-Usergallery Übersicht wo man alles Userfotos auf einmal sieht - geordnet nach > Neuste Fotos zuerst.

    falls jemand interesse hat, einfach melden... zwinker
    Tattoo und Piercing Community: externer Link
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Chapter Hall Of Fame
    Registriert seit
    21.10.2007
    Beiträge
    5.951
    Beitragswertungen
    229 Beitragspunkte
    lad es doch hoch zu betatest zwinker
    Spamming, sinnlose Beiträge, Pushing, Doppelposting und Werbung sind verboten
    externer Link
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    DeathBoy Mitglied
    Registriert seit
    24.02.2010
    Beiträge
    182
    Beitragswertungen
    1 Beitragspunkte
    Ich könnte es ja anbieten zum Tausch gegen ein Modul zur Kommentarfunktion für die Usergallery zunge

    Ne quatsch, werd es mal glatt packen und hochladen. Sozusagen als Dankeschön weil hier immer so gut geholfen wird!
    Tattoo und Piercing Community: externer Link
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    GeCk0 Hall Of Fame
    Registriert seit
    01.05.2009
    Beiträge
    2.989
    Beitragswertungen
    96 Beitragspunkte
    jubb habs mal zum beta-test freigeschaltet lächeln
    mehr dazu siehst du dann im entsprechenden Thread
    Alle Module von mir sind nun unter php-gecko.de erreichbar
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten