kostenloser Webspace werbefrei: lima-city


2 SQL Abfragen in einem Script

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    Hallo !

    Ich erstelle gerade ein Forum für meine Seite in PHP. Für eine Seite brauche ich die Antworten aus einer Tabelle und das Benutzer Avatar aus der anderen Tabelle.

    Wie bringe ich in ein Script 2 SQL Abfragen rein?

    So soll es ungefähr sein:

    $sql = "SELECT ".  
        " * ".  
      "FROM ".  
        "forum ". 
      "WHERE ".  
        "(Id like '".$_GET['Id']."')";  
    $result2 = mysql_query ($sql2);  
       
    while ($data = mysql_fetch_array ($result2)) {
      $Gruender = $data["Gruender"];
      $Id = $data["Id"];
      $text = $data["text"];
    
    $sql1 = "SELECT Bild FROM benutzerdaten WHERE Nickname = '".$Gruender."'";
    $result1 = mysql_query($sql1);
    $row1 = mysql_fetch_object($result1);
    $userpict = $row2->Bild;


    Könnt Ihr mir helfen?
    Mfg
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Also wenn einer einen Forumseintrag macht dann speicherst du doch sicher in etwa folgende Daten ab:

    AutorID | In welchem Forum | welches Thema | Text | Datum ....

    Ich wähle hier bewusst die ID des Autors und nicht den Namen weil es einfach schneller is, aber du kannst das ja dann abändern.

    Und für den User

    Username | Passwort | Avatarbild | Anmeldedatum ....

    Wenn dem in etwa so ist, dann schreib da so

    $eintrag=mysql_query("SELECT * FROM Forumtabelle WHERE id='was auch immer' ");
    while($Eintrag=mysql_fetch_assoc($eintrag))
    {
    echo "<h1>".$Eintrag['thema']."</h1>" 
    // Eintrag // Datum ... alles was zum Forum gehört
    
    
    // Und hier das Query das den User anhand der AutorenID ausliest
    $user=mysql_query("SELECT * FROM User WHERE UserID='".$Eintrag['AutorID']."');
    $User=mysql_fetch_assoc($user);
    echo $User['nick'];
    }


    Du kannst überall so viele Abfragen starten wie du willst. Das is praktisch so wie du es vorgemacht hast.

    Grüsse
    Color

    Beitrag zuletzt geändert: 18.9.2009 15:42:33 von color
  4. d************h

    Ganz einfach: Du führst erst die Erste abfrage aus, speicherst die Daten in einer Variablen, führst die zweite Abfrage aus und speicherst die Daten in anderen Variablen. Dann machst du die Datenausgabe.

    Oder du machst es mit OOP. Das ist meiner meinung nach sehr viel einfacher und übersichtlicher. Da kannst du dann spezielle Variablen erstellen, die nur diese Daten enthalten und du, wenn du die Klasse fertig hast, blos mit ein bis 2 Codezeilen aufrufen brauchst.
    Wenn du kein OOP kannst solltest du dir das wirklich mal anschauen! Das ist eine sehr viel angenehmere Art zu programmieren und man verliert den Überblick nicht so schnell!
  5. e********l

    OMG....

    Habe deine Anweisunge mal in einen Query gesteckt. So kannst du die Beiträge und Avatare in einem Rutsch auslesen.
    $queryString = "SELECT	f.`Id` AS forum_id, f.`Gruender`, f.`text`,
    			bd.`Bild`
    		FROM	`forum` AS f
    			INNER JOIN `benutzerdaten` AS bd
    				ON	f.`Gruender` = bd.`Nickname`
    		WHERE	f.`Id` = ".$_GET['Id'];


    Wie color aber schon schrieb solltest du mehr mit IDs arbeiten.

    //edit: @d-s: was hat das Problem des TEs bitte mit OOP zu tun? Nichts!

    Beitrag zuletzt geändert: 18.9.2009 15:51:06 von evil-devil
  6. d************h

    Naja, war nur ein Tipp.
    Wenn man es mit OOP macht hat man halt ein insgesamt dynamischeres System bezüglich der Erweiterung, Verbesserung und so weiter.

    Aber wenn man es lieber auf den schwierigen Weg macht...
  7. e********l

    Nochmal: OOP hat nichts mit SQL zu tun. Mit OOP kann man keine SQL Anweisungen ersetzen. Man kann zwar dynamisch welche erzeugen, aber bis man in einem Fehlerfall den Fehler gefunden hat kann es wesentlich länger dauern als auf einem von Hand optimierten Weg.

    Beitrag zuletzt geändert: 18.9.2009 16:08:39 von evil-devil
  8. Solange man nichmal die Grundlagen für SQL beherrscht sollte man die Finger von OOP lassen. Natürlich ist OOP total schick, aber jemand der noch nie ein Projekt gemacht hat in dem OOP total nützlich is, der sieht den Vorteil nicht, gegenüber einer einfachen funktion am anfang der Seite.

    Und die Lösung von evil-devil is sehr schön, klar dagegen kommt meine fast net an, aber ich denke für das Verständniss wie und wo man überall Abfragen durchführen kann, is mein Vorschlag ausreichend.

    Wenn das mal sitzt kann man sich über die coolen Lösungen nochmal unterhalten ^^

    Grüsse
    Color
  9. @davy: Falls du es wissen willst: Der Fehler bestand darin, dass du die erste SQL-Anweisung in der Variable $sql gespeichert hast. Hättest du die Anweisung in $sql2 gespeichert, hätte es funktioniert, vorausgesetzt, du machst irgendwann die geschweifte Klammer wieder zu, ich denke aber, dass du das noch machst, und da das nur ein Codeausschnitt war.




    mfg drafed-map
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!