Simon: Was ist an dieser Verknüpfung falsch?

Hi,

ich habe das Problem das immer kommt das die Datenbank nicht abgefragt werden kann. Alle Angaben zur DB-Verbindung stimmen. In jedem Feld der DB ist was eingetrage und wenn ich die Tabellen einzelt auslesen lasse funktioniert auch alles.

Nur wenn ich die yim_forum.Thema_ID und yim_forum_thema.ID verknüpfe gibt es Probleme.

Thema_ID ist ein Wert der per Auswahl festgelegt wird und ID ist ein Wert der per auto.increment geschrieben wird.

Wo ligt jetzt das Problem. Ist die DB-Abfrage nicht richtig?

Quelltext: $result = mysql_query("SELECT yim_forum.Thema_ID,yim_forum.Betreff,yim_forum.Text,yim_forum_thema.Thema FROM yim_forum,yim_forum_thema WHERE ID =".$eintrag." AND yim_forum.Thema_ID = yim_forum_thema.ID");

Gruß Simon

  1. hi Simon,

    ich habe das Problem das immer kommt das die Datenbank nicht abgefragt werden kann.

    was genau ist den das problem, eine Fehlermeldung oder aber eine leere tabelle ?

    Ilja

    1. hi Simon,

      ich habe das Problem das immer kommt das die Datenbank nicht abgefragt werden kann.

      was genau ist den das problem, eine Fehlermeldung oder aber eine leere tabelle ?

      Ilja

      Als Fehler kommt immer das die DB nicht verbunden werden kann!

      Da (erweiterter Quelltext): if($bearbeitet != true && $eintrag != 0) { // Es wurden keine Eingaben gemacht, und es soll eine Antwort verfasst werden
        $result = mysql_query("SELECT yim_forum.Thema_ID,yim_forum.Betreff,yim_forum.Text,yim_forum_thema.Thema FROM yim_forum,yim_forum_thema WHERE ID =".$eintrag." AND yim_forum.Thema_ID = yim_forum_thema.ID");
       if(!$result) die("Datenbank konnte nicht abgefragt werden.");

      Gruß ... Simon

      1. Huhu Simon

        Als Fehler kommt immer das die DB nicht verbunden werden kann!

        if(!$result) die("Datenbank konnte nicht abgefragt werden.");

        das ist Deine Fehlermeldung, aber wie lautet die "richtige" ( mysql_error() )?

        Viele Grüße

        lulu

        --
        bythewaythewebsuxgoofflineandenjoytheday
        1. Hello,

          bei diesen verwirrenden Horrornamen würde ich mich als Datenbank auch sperren.

          *scnr*

          Tom

        2. Huhu Simon

          Als Fehler kommt immer das die DB nicht verbunden werden kann!

          if(!$result) die("Datenbank konnte nicht abgefragt werden.");

          das ist Deine Fehlermeldung, aber wie lautet die "richtige" ( mysql_error() )?

          Viele Grüße

          lulu

          Nein das ist nicht die Fehlermeldeung sondern die die-ausage!

          Gruß ... Simon

      2. hi simon,

        mach doch mal wie lulu vorgeschlagen hat nach der query eine fehlerausgabe also:

        $result = mysql_query("SELECT......");
        echo mysql_error();

        außerdem würde ich bei beiden funktionen den verbindungs-identifier mit angeben, den du durch die mysql_connect bekommst.

        Ilja

        1. hi simon,

          mach doch mal wie lulu vorgeschlagen hat nach der query eine fehlerausgabe also:

          $result = mysql_query("SELECT......");
          echo mysql_error();

          außerdem würde ich bei beiden funktionen den verbindungs-identifier mit angeben, den du durch die mysql_connect bekommst.

          Ilja

          Geniale Idee ... ich hatte der einen ID gornet angegeben woher sie kommt! Sorry ... zu viel Buchstaben heute schon gesehen!

          Gruß ... Simon

      3. Huhu Simon

        $result = mysql_query("SELECT yim_forum.Thema_ID,yim_forum.Betreff,yim_forum.Text,yim_forum_thema.Thema FROM yim_forum,yim_forum_thema WHERE ID =".$eintrag." AND yim_forum.Thema_ID = yim_forum_thema.ID");

        um Dein SQL übersichtlicher zu halten solltest Du Alias-Namen für die Tabellen verwenden, besonders im konkreten Beispiel, da yim_forum und yim_forum_thema sehr ähnlich sind.

        Eine gute Idee ist es auch den SQL-Query so zu schreiben, dass die wichtigsten SQL-Schlüsselwörter jeweils auf einer eigenen Zeile stehen.

        Also z.B. folgender Vorschlag:

        $query  = ' SELECT F.Thema_ID, F.Betreff,F.Text, T.Thema ';
        $query .= ' FROM yim_forum as F, yim_forum_thema AS T';
        $query .= ' WHERE ID='.$eintrag;
        $query .= ' AND F.Thema_ID = T.ID';

        $result = mysql_query($query) or die ('Verdammte Axt: '.msyql_error() );

        Das ist doch übersichtlicher, oder?

        Viele Grüße

        lulu

        --
        bythewaythewebsuxgoofflineandenjoytheday