Vinzenz Mai: mysql spaltennamen in array speichern

Beitrag lesen

Hallo,

also danke erstmal für deine schnelle Antwort. Hat mich schonmal sehr viel weiter gebracht nur habe ich jetzt ein Problem. Bei mir wird immer nur die erste von 12 Spaltennamen angezeigt. Hier ist mein Code.

<?php
include("db.php");
$result = mysql_query("
SELECT
    COLUMN_NAME
FROM
    INFORMATION_SCHEMA.COLUMNS
WHERE
    TABLE_NAME = 'xxxx'
AND
    TABLE_SCHEMA = 'xxx'
");

$res=mysql_query("SELECT * FROM xxxx LIMIT 1");

was bitte soll das? Weg damit. In beiden Fällen fehlt die Fehlerbehandlung.

$num=mysql_num_fields($res);

Das ist was völlig anderes.

Nein, Du solltest nicht an der Anzahl der Spalten Deiner seltsamen zweiten Abfrage interessiert sein, sondern wie üblich an den Datensätzen Deiner ersten Abfrage.

Jeder einzelne Datensatz enthält genau eine Spalte, kein Wunder bei einer Abfrage, die genau eine Spalte abfragt. Sie enthält, wenn Deine Tabelle 12 Spalten besitzt, 12 Zeilen. Frage diese wie üblich ab:

$ergebnis = mysql_fetch_array($result);

Aha, hier kommen wir zur Sache. Du solltest wie üblich mit einer while-Schleife durch die Datensätze durchlaufen.

for($i=0; $i<$num; $i++) {
        echo "Das ".($i+1).". Element hat den Wert ".$ergebnis[$i]."<br />\n";
    }
?>

Frage nicht nur den ersten Datensatz ab, sondern alle. Jede Zeile liefert Dir genau einen Spaltennamen zurück.

Freundliche Grüße

Vinzenz