Alle Spaltennamen ausgeben

Das Problem ist nur, dass ich nichts mit VBA mache. Ich muss es mit PHP auslesen. Diese Lösung hat mir auch shcon google ausgespuckt, aber sie bringt mir nichts. Ich erkläre vielleicht mal genauer, was ich machen will:
Ich habe einen Filter. Er besteht aus einem Eingabefeld, einem Drop-Down Liste und einem Submit-Button. In dem Textfeld wird erst ein belibiger wert eingegen. Dann soll man über die Drop-Down Liste wählen können, in welcher Spalte er nach dem Wert suchen soll. das ist halt die ganze Idee. Da die Datenabnk ständig neue Spalten erhält, wäre es sinnlos, die List statisch festzulegen.

P.S.: Weis jemand, wie man Umlaute in SQL behandelt. Manche Spaltennamen haben halt Umlaute und ich kann diese nicht auslesen(Ich habe die Datenbank nicht gemacht und darf sie auch nicht abändern.)

MfG
David M.
 
Hab jetzt grad keine Erfahrung mit PHP in Kombination mit MS Access.
Aber, du kannst doch sicher ein SELECT abwerfen und dann im PHP die Felder davon durchgehen.

Zeig doch mal ein wneig Code, wie du auf access zugreiffst.

PHP:
$sql = 'SELECT * FROM myTable WHERE 1=2';
$irgendwas = aufrufAufMsAccess($sql);
//TODO äirgendwas auswerten
 
Ok,
also connection:
PHP:
$conn=odbc_connect('Datenblatt','','') or die("Verbindung zum Server fehlgeschlagen");
$sql="SELECT * FROM Datenblatt WHERE Platine LIKE '%$bg%'"; 
$rs=odbc_exec($conn,$sql);

und Datenaufruf:
PHP:
    $nu = odbc_result ($rs, "NU-Datei");
    $bp = odbc_result ($rs, "BP-Datei");
    $rk = odbc_result ($rs, "RK-Datei");
    $bm = odbc_result ($rs, "BM-Datei");
Hoffe das hilft euch weiter

EDIT:
Ich habe es mal so probiert, jedoch zeigt er mir gar nichts an:

PHP:
$db = "Datenblatt";
$table = "Datenblatt";
$conn=odbc_connect('Datenblatt','','') or die("Verbindung zum Server fehlgeschlagen");
$result = odbc_columns($conn, $db, "", $table, "%");
while (odbc_fetch_row($result)) {
    echo odbc_result_all($result);
}
MfG
David M.
 
Zuletzt bearbeitet:
odbc_columns scheint mit dem MS Access-ODBC-Treiber nicht zu gehen.
Dann umgehst du das einfach

PHP:
$sql="SELECT * FROM T1 WHERE 1=2"; 
$res=odbc_exec($conn,$sql);  

for($i = 1; $i <= odbc_num_fields($res); $i++ ){
    var_dump(odbc_field_name($res, $i));
}
 
Wunderbar es funktioniert. Danke dir für deine Hilfe. Habe dazu aber noch eine Frage. Ich verstehe nicht, was das "WHERE 1=2" soll. Was bewirkt es

MfG
David M.
 
1=2 ist immer False. Dieser Aufruf gibt also ein leeres Recordset zurück. Dies beinhaltet die Strukur, nicht jedoch Daten. Für die Feldnamen brauchen wir ja keine Daten. Jede Datenübertragung braucht Performance.
So reduziere ich also die Zugriffszeit
 

Neue Beiträge

Zurück