Max: Komplette Spalte auslesen

Hallo,

ist es irgendwie mit PHP möglich eine Komplette Spalte von eine MySQL Datenbank auszulesen.

Gruß
Max

  1. Hi,

    ist es irgendwie mit PHP möglich eine Komplette Spalte von eine MySQL Datenbank auszulesen.

    ja, genau so wie sämtliche anderen Datenbankzugriffe...
    SELECT spalte FROM tabelle
    und dann mit mysql_fetch_assoc und Konsorten über die Ergebnisse iterieren.

    MfG
    Rouven

    --
    -------------------
    ie:| fl:| br:> va:| ls:& fo:) rl:( n4:{ ss:) de:] js:| ch:? mo:} zu:|
    1. Hallo Rouven,

      ich habe jetzt folgendes:

      <?php

      $DatabasePointer = mysql_connect($DatabaseHost, $DatabaseUser, $DatabasePassword);
       mysql_select_db($Database, $DatabasePointer);

      $result = mysql_query("SELECT name FROM $Tabelle", $DatabasePointer);

      while ($daten = mysql_fetch_assoc($result)) {
                       $aktiv = $daten[''];
        }

      ?>

      Doch das Script gibt nichts aus. Was ist falsch?

      1. Hallo!

        while ($daten = mysql_fetch_assoc($result)) {
                         $aktiv = $daten[''];
          }

        $daten[''] existiert hier nicht. Das einzige Arrayelement das in $daten vorhanden ist, ist 'name'.
        Wenn das Script etwas ausgeben soll, dann musst du es ihm auch sagen. Ein echo oder print an der richtigen Stelle wirkt da oft Wunder.

        mfg
          frafu

        1. Hallo,

          ich habe das Script jetzt geändert, jedoch geht es immer nocht nicht. Es gibt einfach nichts aus.

          Script:

          <?php

          $DatabasePointer = mysql_connect($DatabaseHost, $DatabaseUser, $DatabasePassword);
           mysql_select_db($Database, $DatabasePointer);

          $result = mysql_query("SELECT name FROM $Tabelle", $DatabasePointer);

          while ($daten = mysql_fetch_assoc($result)) {
                           }

          print $daten;
          ?>

          1. Hi,

            $result = mysql_query("SELECT name FROM $Tabelle", $DatabasePointer);

            jetzt gibt es ein Result-Handle. Das Result-Handle enthält n Zeilen und eine Spalte namens 'name'.

            while ($daten = mysql_fetch_assoc($result)) {

            Hier in der Schleife gibt es das assoziative Array $daten, siehe
            var_dump. Mit $daten['name'] kannst du den einzigen Eintrag auslesen

            print $daten;

            Hier bist du außerhalb (nach) der Schleife. Der Zeiger steht "auf dem letzten Datensatz). Wenn du zumindest $daten['name'] geschrieben hättest, dann sähest du den letzten Namen.

            MfG
            Rouven

            --
            -------------------
            ie:| fl:| br:> va:| ls:& fo:) rl:( n4:{ ss:) de:] js:| ch:? mo:} zu:|
            1. Hallo Rouven,

              das weis ich ja schon, aber ich will ja nicht einen Eintrag auslesen, sondern alle. Also ein Beispiel:

              MySQL:

              name      adresse       passwd

              max     teststraße1     1234
              Rouven   testallee3      9876

              PHP-Datei:

              (Alle Namen sollen in einem Drop Down feld sein, also <option></option>)

              In ihrer Datenbank sind folgende User verfügbar: Max
                                                               Rouven
                                                               ......

              1. Hi,

                das weis ich ja schon, aber ich will ja nicht einen Eintrag auslesen, sondern alle. Also ein Beispiel:

                Genau, aber wenn du das weißt, dann hast du trotzdem noch irgendwo einen Denkfehler drin.

                (Alle Namen sollen in einem Drop Down feld sein, also <option></option>)

                Genau das wäre der Job für deine while-Schleife:

                1. <select ...>
                2. while-Schleife - im Durchlauf: echo "<option...>";
                3. </select>

                MfG
                Rouven

                --
                -------------------
                ie:| fl:| br:> va:| ls:& fo:) rl:( n4:{ ss:) de:] js:| ch:? mo:} zu:|
                1. Hi Rouven,

                  wie mache ich denn die while Schleife?

                  ich habe jetzt das:

                  while ($daten = mysql_fetch_assoc($result)) {
                                  $aktiv = '<select><option>echo $daten['name']</option></select>';
                                 }

                  und folgende Fehlermeldung:

                  Parse error: parse error, unexpected T_STRING in /xxx/xxx/test.php on line 45

                  1. Hi,

                    Parse error: parse error, unexpected T_STRING in /xxx/xxx/test.php on line 45

                    sorry, aber lies bitte einfach im Manual nach, da gibts Beispiele für Strings, die verschiedenen Arten von Quotes, Array+String, ...

                    MfG
                    Rouven

                    --
                    -------------------
                    ie:| fl:| br:> va:| ls:& fo:) rl:( n4:{ ss:) de:] js:| ch:? mo:} zu:|
                    1. Hallo Rouven,

                      das ist mir klar, was dort beschrieben wird.

                      Nochmal ein Beispiel:

                      Sagen wir mal ich möchte einfach nur alle Einträge unter name anzeigen (ohne <option></option>). Dazu folgenden Quellcode:

                      while ($daten = mysql_fetch_assoc($result)) {
                                      $aktiv = $daten['name'];
                                     }

                      Das Problem, er gibt nur den Letzten Eintrag in der Spalte Name aus. Warum nicht alle?

                      Wenn er mir alle Anzeigen würde, wäre mein Problem gelöst.

                      1. Das Problem, er gibt nur den Letzten Eintrag in der Spalte Name aus. Warum nicht alle?

                        Hmpf. Warum sollte er? Du sagst ihm: aktiv = <Inhalt1>; aktiv = <Inhalt2>; ...
                        Warum sollte er sich was altes merken?? Entweder du legst die Inhalte in einem Array ab (wobei ich bei den Options den Sinn nicht sehe) oder du gibst den Inhalt eben direkt aus. Alles worauf es ankommt ist der richtige Einsatz von Concat-Operationen.

                        MfG
                        Rouven

                        --
                        -------------------
                        ie:| fl:| br:> va:| ls:& fo:) rl:( n4:{ ss:) de:] js:| ch:? mo:} zu:|
            2. echo $begrüßung;

              $result = mysql_query("SELECT name FROM $Tabelle", $DatabasePointer);
              jetzt gibt es ein Result-Handle. Das Result-Handle enthält n Zeilen und eine Spalte namens 'name'.

              Nicht unbedingt. Im Fehlerfall gibt mysql_query() false statt eines Result-Handles zurück. Dies sollte nicht unterschlagen werden, da false für die nachfolgenden Fetch-Befehle ein ungültiges Argument darstellt, ganz zu schweigen davon, dass der weitere Programmablauf vermutlich unsinnig wird.

              Auch beim Connect und beim Selektieren der Datenbank können Fehler auftreten, die nicht ignoriert werden sollten.

              Ein Beispiel einer Abfrage mit Fehlerberücksichtigung gibt es im Handbuchkapitel zu MySQL.

              echo "$verabschiedung $name";