Kalle_B: Wo sind bei $row['id'] die Spaltennamen?

Hallöle,

wenn ein DB-Ergebnis abgearbeitet wird mit

while ( $row = mysql_fetch_array( $res_frei )) {
    echo $row['id'] ...
  }

dann müssen doch die Namen der Spalten (also 'id', ..) PHP zur Verfügung stehen.

Wie heißt das Array?

Lieben Gruß aus Birkenau, Kalle

  1. Hallöle,

    wenn ein DB-Ergebnis abgearbeitet wird mit

    while ( $row = mysql_fetch_array( $res_frei )) {
        echo $row['id'] ...
      }

    dann müssen doch die Namen der Spalten (also 'id', ..) PHP zur Verfügung stehen.

    Wie heißt das Array?

    Lieben Gruß aus Birkenau, Kalle

    HI,
    $row = mysql_fetch_array( $res_frei ))

    echo"<pre>";
    print_r($row); // Key + Inhalt
    echo"</pre>";

    Simone

    1. Hallo, Simone,

      echo"<pre>";
      print_r($row); // Key + Inhalt
      echo"</pre>";

      print_r gibt bei mir (PHP 3.xx) Syntaxfehler.

      Ich erinnere mich, dass es eine PHP- Variable für die Keys gibt, komme aber nicht auf den Namen.

      Kalle

      1. Hallo Kalle,

        print_r gibt bei mir (PHP 3.xx) Syntaxfehler.

        Bitte? Du solltest deine Version von PHP _dringendst_ updaten. PHP 4 ist ja schon fast sechs Jahre alt.

        Schöne Grüße,

        Johannes

        --
        ie:% fl:( br:< va:| ls:[ fo:) rl:) n4:? ss:| de:] js:| ch:} sh:) mo:| zu:)
        1. Hi Johannes,

          Bitte? Du solltest deine Version von PHP _dringendst_ updaten. PHP 4 ist ja schon fast sechs Jahre alt.

          Exact! PHP 5 ist mittlerweile aktuell und die Pläne für PHP 6 laufen schon.

          MfG, Dennis.

      2. HI, Kalle

        var_dump() = (PHP 3 >= 3.0.5, PHP 4, PHP 5)

        Simone

        1. HI, Simone

          echo "<pre>";
              var_dump($row);
              echo "</pre><br>";

          gibt folgende Ausgabe:

          array(12) {
            int(0)
            string(1) "2"

          string(4) "slot"
            string(1) "2"

          int(1)
            string(4) "ADAC"

          string(9) "aus_firma"
            string(4) "ADAC"

          int(2)
            string(1) "2"

          string(7) "adr_unt"
            string(1) "2"

          int(3)
            string(3) "864"

          string(8) "aus_chef"
            string(3) "864"

          int(4)
            string(4) "1432"

          string(6) "aus_id"
            string(4) "1432"

          int(5)
            string(1) "2"

          string(8) "anw_slot"
            string(1) "2"
          }

          Dabei sind "slot", "aus_firma", "adr_unt", ... die gesuchten Spaltenüberschriften. Wie kann ich zugreifen?

          Kalle

          1. Hallo Kalle,

            Dabei sind "slot", "aus_firma", "adr_unt", ... die gesuchten Spaltenüberschriften. Wie kann ich zugreifen?

            Indem du als erstes deine PHP-Version updates. PHP 3 wird seit über fünfeinhalb Jahren nicht mehr unterstützt, d.h. seit dem wurden auch keine Sicherheitslücken mehr geschlossen und Bugs korrigiert. Die Verwendung einer derart alten PHP-Version kann man nur als grob fahrlässig bezeichnen.

            Außerdem hast du dann derartige Probleme nicht mehr, da du auf viel mehr Funktionen zugreifen kannst.

            Schöne Grüße,

            Johannes

            --
            ie:% fl:( br:< va:| ls:[ fo:) rl:) n4:? ss:| de:] js:| ch:} sh:) mo:| zu:)
            1. Hallo Johannes,

              Dabei sind "slot", "aus_firma", "adr_unt", ... die gesuchten Spaltenüberschriften. Wie kann ich zugreifen?

              Indem du als erstes deine PHP-Version updates. PHP 3 wird seit über fünfeinhalb Jahren nicht mehr unterstützt, d.h. seit dem wurden auch keine Sicherheitslücken mehr geschlossen und Bugs korrigiert. Die Verwendung einer derart alten PHP-Version kann man nur als grob fahrlässig bezeichnen.

              Die Antwort ist nicht sehr hilfreich.

              Ich habe bei einem anderen Provider eine andere Domain mit PHP5, da gibt es aber Wartezeiten beim Abruf. Es macht einen sehr wackeligen Eindruck (liegt wohl am preisgünstigen Provider, nicht an der PHP- Version).

              Muss bis morgen ein professionelles Zwischenergebnis für ein lfd. Projekt. Das ist nun mal unter der alten Version.

              Kalle

  2. Hallo Kalle,

    dann müssen doch die Namen der Spalten (also 'id', ..) PHP zur Verfügung stehen.

    Wie heißt das Array?

    Wenn du nur die Namen der Spalten suchst, verwende die Funktion mysql_fetch_assoc() und bastel dir dann ein Array aus den Schlüssel von $row:

    $spalten = keys($row);

    Schöne Grüße,

    Johannes

    --
    ie:% fl:( br:< va:| ls:[ fo:) rl:) n4:? ss:| de:] js:| ch:} sh:) mo:| zu:)
    1. Hallo Johannes,

      ich leide unter der PHP- Version 3:

      http://de.php.net/mysql_fetch_assoc

      mysql_fetch_assoc
      (PHP 4 >= 4.0.3, PHP 5)
      mysql_fetch_assoc -- Fetch a result row as an associative array

      Es gibt da aber was für die Alten ;-)

      Kalle

      1. Hallo

        ich leide unter der PHP- Version 3:

        http://de.php.net/mysql_fetch_assoc

        mysql_fetch_assoc
        (PHP 4 >= 4.0.3, PHP 5)
        mysql_fetch_assoc -- Fetch a result row as an associative array

        Es gibt da aber was für die Alten ;-)

        Wenn du nicht nur den Link besorgt, sondern die Seite auch gelesen hättest, wüsstest du:

        <zitat>mysql_fetch_assoc() entspricht in der Funktionsweise exakt dem Aufruf von mysql_fetch_array() mit Angabe von MYSQL_ASSOC als optionalen zweiten Parameter.</zitat>
        .

        Und wenn man, also in diesem Falle du, dem Link zu mysql_fetch_array() folgt, sieht man dass diese Funktion bereits bei PHP 3 zur Verfügung steht. Wobei sich die Frage stellt, warum du diese Version immernoch verwendest.

        Tschö, Auge

        --
        Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
        (Victor Hugo)
        Veranstaltungsdatenbank Vdb 0.1
  3. wie kann es sein, dass phpmyadmin (auch die ALTE Version) die Spaltenüberschriften ausgeben kann, aber ICH komme mit PHP3 nicht dran?

    also bei

    SELECT * FROM adresse

    weiss phpmyadmin genau, wie die Spalten heissen:

    Vorname Nachname Strasse PLZ Ort
    ------- -------- ------- --- ---

    Es muss also von der Datenbank mitgeliefert werden. Aber wie kann ich es auslesen ???

    Die ganze Diskussion kommt nicht auf den Punkt.

    LG Kalle

    1. Hi,
      hilft dir das (My-)SQL-Kommando SHOW COLUMNS?

      MfG
      Rouven

      --
      -------------------
      ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
      1. Hi, Rouven

        hilft dir das (My-)SQL-Kommando SHOW COLUMNS?

        War zwar nicht das AKTUELLE Problem, aber hebe ich mir auf.

        Kalle

    2. echo $begrüßung;

      wie kann es sein, dass phpmyadmin (auch die ALTE Version) die Spaltenüberschriften ausgeben kann, aber ICH komme mit PHP3 nicht dran?

      Es verwendet eine dafür vorgesehene MySQL-Funktion. Diese Aussage überrascht dich sicherlich nicht sonderlich, nehme ich an. :-)

      Es muss also von der Datenbank mitgeliefert werden. Aber wie kann ich es auslesen ???

      mysql_field_name() bietet sich an. Vielleicht nützt dir auch noch ein mysql_num_fields(), wenn du vor dem Aurufen einer Schleife wissen willst, wieviele Felder es in der Ergebnismenge gibt.

      Und jetzt sag nicht, dass es diese Funktionen nicht unter PHP3 gibt. Im Handbuch sind auch noch andere abwärtskompatible Schreibweisen zu finden.

      echo "$verabschiedung $name";

      1. Danke

        mysql_field_name()
        mysql_num_fields(),

        sind meine Freunde.

        LG Kalle