Phpnewbie: Auslesen einer DB in Tabellenform

Guten Morgen Community,

ich beschäftige mich zu Übungszwecken an der Arbeit mit einem Adressbuch in PHP bezogen auf eine Postgresql Datenbank. Mein jetziges Problem ist, dass ich die Daten aus der Datenbank mit $line = pg_fetch_array($result, null, PGSQL_ASSOC) abfange, diese werden ja in einem Array gespeichert. Über folgenden Befehl möchte ich nun das erste Element meiner Datenbank & Tabelle ansprechen bzw den Wert der dort übermittelt wurde übertragen.echo "\t<td>$line[Vorname]</td>\n";. Mein Problem liegt darin, dass ich nur leere Tabellen spalten ausgegeben bekomme. Bitte um schnelle Hilfe.

MfG

  1. Meine Herren,

    Guten Morgen Community,

    echo "\t<td>$line[Vorname]</td>\n";

    Wenn ich mich nicht irre, musst du geschweifte Klammern um Array-Zugriffe packen, wenn du auf Variablen-Substitution setzt, und den Schlüssel in Hochkommata zu packen schadet auch nie:

    echo "\t<td>{$line['Vorname']}</td>\n";

    1. Meine Herren,

      Wenn ich mich nicht irre, musst du geschweifte Klammern um Array-Zugriffe packen, wenn du auf Variablen-Substitution setzt, und den Schlüssel in Hochkommata zu packen schadet auch nie:

      echo "\t<td>{$line['Vorname']}</td>\n";

      Ich fürchte du irrst dich, sobald ich den Schlüssel in Hochkommata packe erscheint ein Syntaxfehler. Teilweise konnte ich mein Problem lösen, denn sobald ich oben in meiner $query variablen ein SELECT *  FROM tabelle mache überträgt er die Daten wie gewünscht, jedoch soll ich dieses ohne * lösen also Sprich: SELECT Vorname, Nachname ..usw FROM tabelle; jedoch erkennt es diese Schreibweise nicht an ?!?

    2. Tach!

      echo "\t<td>$line[Vorname]</td>\n";
      Wenn ich mich nicht irre, musst du geschweifte Klammern um Array-Zugriffe packen, wenn du auf Variablen-Substitution setzt, und den Schlüssel in Hochkommata zu packen schadet auch nie:
      echo "\t<td>{$line['Vorname']}</td>\n";

      Du irrst teilweise. Die Regeln der Variablenersetzung sind bei Arrays etwas komplexer und nicht unbedingt einheitlich zu der Notation außerhalb von Strings. Siehe PHP-Handbuch-Seiten zu den Typen String und Array, da sind alle Varianten aufgeführt.

      dedlfix.

      1. Meine Herren,

        echo "\t<td>$line[Vorname]</td>\n";
        Wenn ich mich nicht irre, musst du geschweifte Klammern um Array-Zugriffe packen, wenn du auf Variablen-Substitution setzt, und den Schlüssel in Hochkommata zu packen schadet auch nie:
        echo "\t<td>{$line['Vorname']}</td>\n";

        Du irrst teilweise. Die Regeln der Variablenersetzung sind bei Arrays etwas komplexer und nicht unbedingt einheitlich zu der Notation außerhalb von Strings.

        Aber einen Syntax-Fehler dürfte meine Schreibweise laut Handbuch nicht werfen.

        @Phpnewbie: welche PHP-Version nutzt du?

        Siehe PHP-Handbuch-Seiten zu den Typen String und Array, da sind alle Varianten aufgeführt.

        Für Suchfaule: http://www.php.net/manual/de/language.types.string.php#language.types.string.syntax.double

        Danke, kannte ich auch noch nicht. Nun gut, wenn die Coding-Guidelines es erlauben verzichte ich sowieso auf Variablen-Substitution, es widerspricht einfach meiner Vorstellung vom Prinzip der geringsten Überraschung, dennoch gut die Anomalien zu kennen.

  2. Tach!

    echo "\t<td>$line[Vorname]</td>\n";. Mein Problem liegt darin, dass ich nur leere Tabellen spalten ausgegeben bekomme. Bitte um schnelle Hilfe.

    Die schnelle Hilfe lautet wie immer, error_reporting auf E_ALL zu stellen (und display_errors auf on). Damit bekommst zu angezeigt, wenn du auf etwas nicht vorhandenes zugreifst. Ich kann nur vermuten, dass so etwas bei dir der Fall ist. Weiterhin solltest du im Zweifelsfall die Inhalte der Variablen mit var_dump() überprüfen und das gegebenenfalls zurückverfolgen, bis zu der Stelle, an der die Inhalte in sie gelangen sollen.

    dedlfix.