Russ: PHP SELECT Abfrage

Hallo ihr,

Ich habe eine Abfrage die einge werte Ausgeben soll... dennoch gibt das mysql_fetch_array dann keine werte zurück. :-/

$abfrage = "SELECT t1.uid, t2.Nutzername FROM t1 LEFT JOIN t2 ON t1.uid = t2.Nutzerid WHERE t1.erledigt = '0'";

erkennt ihr dort vllt einen fehler?

die daten lese ich dann ganz normal über eine while schleife ein...

while($row = mysql_fetch_array($abfrage))
{
...
}

MfG
Russ

  1. Hi,

    $abfrage = "SELECT t1.uid, t2.Nutzername FROM t1 LEFT JOIN t2 ON t1.uid = t2.Nutzerid WHERE t1.erledigt = '0'";

    die daten lese ich dann ganz normal über eine while schleife ein...

    while($row = mysql_fetch_array($abfrage))
    {
    ...
    }

    Sofern du nicht zwischendurch $abfrage ueberschrieben hast, ist das also immer noch ein Textstring ...

    dennoch gibt das mysql_fetch_array dann keine werte zurück. :-/

    Es sollte dir aber eine Meldung geben - das error_reporting hast du ja hoffentlich auf E_ALL gestellt?

    Und jetzt schaust du im Handbuch noch mal nach, zum Beispiel in der Beschreibung von mysql_fetch_array, was bei dir noch wichtiges fehlen koennte ...

    MfG ChrisB

  2. $abfrage = "SELECT t1.uid, t2.Nutzername FROM t1 LEFT JOIN t2 ON t1.uid = t2.Nutzerid WHERE t1.erledigt = '0'";

    Da man weder die Tabellenstruktur kennt, noch die Inhalte, ist es schwer zu sagen, ob denn die Abfrage für die Aufgabe, die du lösen willst, logisch richtig ist.
    Vielleicht ist die Abfrage syntaktisch OK und bringt dir deshalb 0 Zeilen als Ergebnis.

    Bist du sicher, dass ein "left join" gemacht werden soll?

    1. $abfrage = "SELECT t1.uid, t2.Nutzername FROM t1 LEFT JOIN t2 ON t1.uid = t2.Nutzerid WHERE t1.erledigt = '0'";
      Da man weder die Tabellenstruktur kennt, noch die Inhalte, ist es schwer zu sagen, ob denn die Abfrage für die Aufgabe, die du lösen willst, logisch richtig ist.
      Vielleicht ist die Abfrage syntaktisch OK und bringt dir deshalb 0 Zeilen als Ergebnis.

      Bist du sicher, dass ein "left join" gemacht werden soll?

      Hi

      Es soll ähnlich wie eine Gästebuch funktionieren. Bloss das nur Regestrierte Benutzer die in der Tabelle Benutzer (t2) stehen. In der Tabelle des "Gästebuches" steht dann nur die "Nutzerid".

      Die Select anfrage soll es mir dann nur ermöglichen den wircklichen Benutzernamen auszugeben und nicht die Nutzerid.

      Hoffe die Information sagen aus was ich will. *gg*

      MfG
      Russ

      1. Hoffe die Information sagen aus was ich will. *gg*

        Naja, nicht wirklich :-)
        Aber probier mal statt "left join" ein "INNER join".

        1. Hoffe die Information sagen aus was ich will. *gg*
          Naja, nicht wirklich :-)
          Aber probier mal statt "left join" ein "INNER join".

          Hi

          Funktioniert leider auch nicht :-/.

          Also nochmal von vorne.

          Tabelle 1 Hauptdaten:

          ID   B_ID  Anfrage   erledigt
          1    1    Hallo      0
          ...  ...   ....      ....

          Tabelle 2 Benutzer:

          ID   Benutzer    Passwort ...
          1    Hans        *****
          ...  ....        ....

          Auf der Seite soll dann Angezeigt werden:

          Anfrage: Hallo...

          Von Autor: Hans

          Abfrage:

          $abfrage = "SELECT t1.uid, t2.Nutzername FROM t1 LEFT JOIN t2 ON t1.uid = t2.Nutzerid WHERE t1.erledigt = '0'";

          wobei die 0 = nicht erledigt bedeutet.

          while($row = mysql_fetch_array($abfrage))
          {
          ...
          }

          Hoffe das hilft mehr. *gg*

          MfG
          Russ

          1. Hoffe die Information sagen aus was ich will. *gg*
            Naja, nicht wirklich :-)
            Aber probier mal statt "left join" ein "INNER join".

            Hi

            Funktioniert leider auch nicht :-/.

            Also nochmal von vorne.

            Tabelle 1 Hauptdaten:

            ID   B_ID  Anfrage   erledigt
            1    1    Hallo      0
            ...  ...   ....      ....

            Tabelle 2 Benutzer:

            ID   Benutzer    Passwort ...
            1    Hans        *****
            ...  ....        ....

            Auf der Seite soll dann Angezeigt werden:

            Anfrage: Hallo...

            Von Autor: Hans

            Abfrage:

            $abfrage = "SELECT t1.B_Id, t2.Nutzername FROM t1 LEFT JOIN t2 ON t1.B_id = t2.id WHERE t1.erledigt = '0'";

            wobei die 0 = nicht erledigt bedeutet.

            while($row = mysql_fetch_array($abfrage))
            {
            ...
            }

            Hoffe das hilft mehr. *gg*

            MfG
            Russ

          2. Hi,

            Funktioniert leider auch nicht :-/.

            Weil dein Code immer noch Bloedsinn ist, wenn das -

            $abfrage = "SELECT t1.uid, t2.Nutzername FROM t1 LEFT JOIN t2 ON t1.uid = t2.Nutzerid WHERE t1.erledigt = '0'";

            while($row = mysql_fetch_array($abfrage))

            • alles ist, was du verwendest.

            Also, RTFM - Beispiel anschauen, und dann mal richtig machen.

            MfG ChrisB

          3. Also meines Erachtens sollte es ein

            SELECT t1.B_ID, t2.Benutzer FROM t1 INNER JOIN t2 ON t1.B_ID = t2.ID WHERE t1.erledigt = 0

            tun.
            Achte aber darauf, ob "erledigt" ein Textfeld oder ein Zahlenfeld ist.
            Je nachdem muss die Null dann in Hochkommas oder nicht.

            Schick die Abfrage auch mal direkt an die Datenbank (ich schätze es ist eine MySQL-DB?) mit phpMyAdmin, MySQL-CC, Navicat oder einem sonstigen DB-Frontend, um zu sehen, ob da Zeilen zurückgeliefert werden.
            WEnn da etwas zurückkommt, ist der Fehler in deinem PHP-Skript zu suchen.

            1. Mahlzeit,

              Schick die Abfrage auch mal direkt an die Datenbank (ich schätze es ist eine MySQL-DB?) mit phpMyAdmin, MySQL-CC, Navicat oder einem sonstigen DB-Frontend, um zu sehen, ob da Zeilen zurückgeliefert werden.

              Wieso "direkt"? Vielleicht sollte Russ die Abfrage ÜBERHAUPT erstmal an die Datenbank schicken?

              WEnn da etwas zurückkommt, ist der Fehler in deinem PHP-Skript zu suchen.

              Der Fehler ist auf jeden Fall in seinem Code zu suchen - darauf hatte ChrisB ja auch bereits zweimal hingewiesen.

              MfG,
              EKKi

              --
              sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
              1. Moin

                Leider nein ^^.

                meine Abfrage ergibt bloss 0 Resultate... der php Code ist schon richtig...

                Hatte bloss net alles hier eingetragen.

                Die info es mal direkt über PHPMyAdmin zu versuchen hat mir dann gezeigt das keine Werte zurück gegeben werden. Weil einfach nichts zutrifft scheinbar.

                Mal sehen ich teste weiter :D

                MfG
                Russ

                1. Hallo,

                  meine Abfrage ergibt bloss 0 Resultate... der php Code ist schon richtig...
                  Hatte bloss net alles hier eingetragen.

                  es ist eine denkbar schlechte Idee, relevanten Code zu verheimlichen. Du willst doch Hilfe und nicht potentielle und fähige Helfer auf falsche Fährten schicken.

                  Freundliche Grüße

                  Vinzenz

            2. Hmmm

              scheint am zusammen bau zuliegen :-/.

              PHPMyAdmin gibt zurück:

              MySQL lieferte ein leeres Resultat zurück (d. h. null Zeilen). (die Abfrage dauerte 0.0003 sek.)

              Dennoch exestieren zwei test Datensätze die ich angelegt habe :-/

              Ich probier mal weiter und melde mich dann.

              Danke für eure Hilfe

              MfG
              Russ

              1. Hello,

                ich hätte mich gerade deines Problems gerne angenommen, aber nachdem deine Beispielabfrage überhaupt nicht zu deinen Spaltennamen passt sehe ich im Moment für mich keinen Einstiegspunkt - bitte poste SAUBER welche Spalten du hast und welches SQL-Statement du ausführst.

                MfG
                Rouven

                --
                -------------------
                sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
                Because good guys need a break every once in a while.  --  Morty in "Click" (Columbia Pictures, 2006)