gerena: MySQL-Schleife

Hallo.
Habe  ganze Nacht mit MySQL verbracht -  wer kann helfen?
....
$result=mysql("$DBName","SELECT text FROM text
WHERE textNa='adresse' OR textNa='RegisterDaten'
 OR textNa='bank'");
while ($row  =  mysql_fetch_row($result)) {
$ADRESSE=$row[0];
$REGISTER=$row[1];
$BANK=$row[2];
}

echo "$ADRESSE $REGISTER $BANK";...

Als Ergebniss bekomme ich nur $BANK.

Vielen Dank.

  1. Hallo,

    Habe  ganze Nacht mit MySQL verbracht

    Ohje...da gibt es aber bessere möglichkeiten :)

    ....
    $result=mysql("$DBName","SELECT text FROM text
    WHERE textNa='adresse' OR textNa='RegisterDaten'
    OR textNa='bank'");

    Du hast in Deinem Select nur eine einzige Spalte (SELECT text from text...), daher kommt auch nur ein Feld zurück.
    Probier mal z.b. "SELECT * FROM text WHERE..."

    Viele Grüße,
    Jörg

    1. Hallo,

      Habe  ganze Nacht mit MySQL verbracht
      Ohje...da gibt es aber bessere möglichkeiten :)

      ....
      $result=mysql("$DBName","SELECT text FROM text
      WHERE textNa='adresse' OR textNa='RegisterDaten'
      OR textNa='bank'");

      Du hast in Deinem Select nur eine einzige Spalte (SELECT text from text...), daher kommt auch nur ein Feld zurück.
      Probier mal z.b. "SELECT * FROM text WHERE..."

      Viele Grüße,
      Jörg

      Ich habe gerade versucht. Ergebniss ist noch schlimmer: "11 bank".

      1. Wie genau sieht denn deine SQL-Tabelle aus? welche Spalten hast Du, und was steht da so drin?

        1. Wie genau sieht denn deine SQL-Tabelle aus? welche Spalten hast Du, und was steht da so drin?

          Ganz einfache Tabelle:

          id  textNa     text
          _______________________

          1 home ....
          2 adresse xxxx
          3 bank xxxxx

          usw. Drin steht Text. Ich möchte diese Texte von Spalte "text" bekommen, falls "TextNa" heisst Adresse oder Bank.

          1. Hallo,

            Dann sollte das folgende eigentlich gehen:

            $result=mysql("$DBName","SELECT * FROM text
            WHERE textNa='adresse' OR textNa='RegisterDaten'
             OR textNa='bank'");
            while ($row  =  mysql_fetch_row($result)) {
            $ADRESSE=$row[0];
            $REGISTER=$row[1];
            $BANK=$row[2];
            $TEXT = $row[3];
            echo $TEXT;
            }

            1. Hallo,

              Dann sollte das folgende eigentlich gehen:

              $result=mysql("$DBName","SELECT * FROM text
              WHERE textNa='adresse' OR textNa='RegisterDaten'
              OR textNa='bank'");
              while ($row  =  mysql_fetch_row($result)) {
              $ADRESSE=$row[0];
              $REGISTER=$row[1];
              $BANK=$row[2];
              $TEXT = $row[3];
              echo $TEXT;
              }

              $TEXT ist schon  vierte  ausgabe, aber ich habe  von DB nur drei abgefragt. Aber trotzdem habe ich versucht: Ergebniss - nix.
              Ich brauche von Tabelle "text" nur  3 Texte. Ich kann natürlich jede einzelne  abholen, aber das sieht nicht besonders klug.

              Vielen dank für Mühe

      2. echo $begrüßung;

        Probier mal z.b. "SELECT * FROM text WHERE..."
        Ich habe gerade versucht. Ergebniss ist noch schlimmer: "11 bank".

        Das ist kein großes Wunder. Der Tipp mit dem SELECT * ist bei einer Verwendung der Rückgabewerte anhand einer Position im Ergebnisdatensatz nicht besonders toll.
        Wenn du die Daten anhand der Reihenfolge ansprichst solltest du auch die gewünschte Reihenfolge explizit angeben: SELECT feld1, feld2, feld3, ...
        Wenn es unbedingt SELECT * sein soll, dann solltest du die Felder über ihrem Namen ansprechen. Ensprechend wäre dann mysql_fetch_assoc() statt mysql_fetch_row() zu verwenden.

        Desweiteren ist dein Code nicht gegen Fehler abgesichert. Wenn MySQL aus irgendeinem Grund eine Fehlermeldung generiert ist das Ergebnis von mysql() (das soll wohl mysql_query() heißen) kein für mysql_fetch_*() zulässiger Wert.
        Schau dir mal an, wie das Dieses Beispiel im Handbuch aufgebaut ist: http://de.php.net/manual/en/ref.mysql.php#mysql.examples

        echo "$verabschiedung $name";

  2. Hallo,

    $result=mysql("$DBName","SELECT text FROM text
    WHERE textNa='adresse' OR textNa='RegisterDaten'
    OR textNa='bank'");
    while ($row  =  mysql_fetch_row($result)) {
    $ADRESSE=$row[0];
    $REGISTER=$row[1];
    $BANK=$row[2];
    }

    echo "$ADRESSE $REGISTER $BANK";...

    Auszug aus anderem Posting:

    Wie genau sieht denn deine SQL-Tabelle aus? welche Spalten hast Du, und was steht da so drin?

    Ganz einfache Tabelle:

    id  textNa     text
    _______________________

    1 home ....
    2 adresse xxxx
    3 bank xxxxx

    Da die gesuchten Ergebnisse in mehreren Datensätzen sind, musst Du auch dem entsprechend auswerten. Ich würde das Feld 'textNa' auch abfragen und abhängig vom Wert dieser Spalte die entsprechenden Variablen setzen. Wie das in PHP genauch gemacht werden kann weiss ich allerdings nicht, da mich diese Sprache nicht interessiert.

    Und noch was: Woher nimmst Du die Gewissheit, dass die Daten in der von Dir gewünschten Reihenfolge daherkommen, ohne dass Du eine Sortierung angibst?

    Grüße
      Klaus

  3. Hallo,

    Für die die den Thread im Archiv finden: der Thread geht in https://forum.selfhtml.org/?t=119078&m=763517 weiter.

    Grüße aus Nürnberg
    Tobias

    --
    TOP7: Vorteile, wenn man in Bayern wohnt
    Selfcode: ie:% fl:( br:< va:) ls:[ fo:) rl:° n4:& ss:) de:] js:| ch:? sh:( mo:| zu:)