Variablenabfrage
Maik Schöbe
- php
Hi,
ich brauche dringend mal euren Rat.
Ich veruche schon den halben Tag mit meinen recht bescheidenen PHP Fähigkeiten eine Lösung auf folgendes Problem zu finden und da ich jetzt hier poste, wisst ihr auch wie es ausgegangen ist. ;o( Also ...
Ich übergebe mit Hilfe eines dynamische erzeugten Formulars verschiede Infos. Die URL sieht nach dem abschicken mit method="get" folgendermassen aus:
http://localhost/entry.php?add=1&tab=software&softwareID=16&programm=Opera&programmVersion=6&maintenance=no&maintenanceIntervall=-&vorhandeneLizenzem=-&serienNummer=0123456789&submit=Wert+hinzuf%FCgen+%3E%3E
tab=software // $tab steht hierbei immer für die Tabelle
softwareID=16 // $softwareID ist das erste Feld der Tabelle software
usw.
Da mir $tab immer zur Verfügung steht, kann ich die Tabelle abfragen und mir mit
mysql_field_name die Namen der Felder holen..... ??? und in einer Schleife oder so mit den Werten aus der URL zusammen bringen. .... oder so.
Ja irgendwie muss das gehen. Aber welche von den, ja nicht gerade knapp bemessenen, PHP Funktionen brauche ich dafür.
Ich bedanke mich schon einmal für eure Hilfe.
Maik Schöbe
Ich übergebe mit Hilfe eines dynamische erzeugten Formulars verschiede Infos. Die URL sieht nach dem abschicken mit method="get" folgendermassen aus:
Es ist nicht falsch, aber überlege Dir genau, ob wann Du get und wann Du post verwendest. Da ist ein kleiner, aber feiner Unterschied (den man schon am Namen erkennt).
http://localhost/entry.php?add=1&tab=software&softwareID=16&programm=Opera&programmVersion=6&maintenance=no&maintenanceIntervall=-&vorhandeneLizenzem=-&serienNummer=0123456789&submit=Wert+hinzuf%FCgen+%3E%3E
..und wenn ich das "Wert hinzufügen" lese, dann erscheint mir das eher eine "Abschicken"- als eine "Abholen"-Geschichte zu sein.
tab=software // $tab steht hierbei immer für die Tabelle
softwareID=16 // $softwareID ist das erste Feld der Tabelle software
usw.Da mir $tab immer zur Verfügung steht, kann ich die Tabelle abfragen und mir mit
mysql_field_name die Namen der Felder holen..... ??? und in einer Schleife oder so mit den Werten aus der URL zusammen bringen. .... oder so.
Ja..nee..was willst Du eigentlich machen? Hast Du Dich mit SQL überhaupt schonmal auseinandergesetzt? Eine "normale" Bedienung von MySQL folgt in PHP immer folgendem Schema:
// Verbindung herstellen
mysql_connect() // verbinden
mysql_select_db() // Datenbank wählen
// mit der Datenbank arbeiten
mysql_query() // SQL-Befehl an Datenbank schicken
// sofern es sich bei mysql_query() um SELECT handelte:
mysql_fetch_assoc/mysql_fetch_row() // in einer Schleife Datenzeilen abholen
mysql_free_result() // wenn fertig: Speicher freigeben
// Arbeit beenden
mysql_close() // Verbindung beenden
Und, mit Ausnahme der letzten drei, _jeden_ Befehl immer schön mit Fehlerprüfung und mysql_error() absichern.
Anwendungsbeispiele findest Du im MySQL-Kapitel der PHP-Anleitung.
Gruß,
soenk.e
Hi Sönke,
tchja wie soll ich das sagen...
Ich kenne den Unterschied von GET und POST, ich weis auch den Unterschied von SQL und PHP. ;o) Was ich aber nicht weis ist, wie ich die Daten zum eintragen "fertig" machen kann. Ich möchte nicht für jede Tabelle ein extra Script schreiben. Sondern ne dynamische Lösung finden. Dabei kenne ich jeweil aber nur den Tabellennamen
Maik Schöbe
Was ich aber nicht weis ist, wie ich die Daten zum eintragen "fertig" machen kann. Ich möchte nicht für jede Tabelle ein extra Script schreiben. Sondern ne dynamische Lösung finden.
mysql_list_fields() verrät Dir die Struktur einer Tabelle, mysql_num_fields() die Anzahl der Spalten und die Infos über die einzelnen Spalten bekommst Du mit den mysql_field_*()-Funktionen. Die letzteren beiden Funktionen kannst Du auch mit einem select-Ergebnis (von mysql_query()) verwenden.
Ich weiß leider immer noch nicht genau, was Du eigentlich vor hast (Daten eintragen oder auslesen), aber sehr brauchbare Beispiele zu allen Funktionen findest Du in der PHP-Anleitung und eine funktionierende, in weiten Teilen möglicherweise auch Deinem angedachten Zweck genau entsprechende Anwendung in phpMyAdmin (http://www.phpwizard.net/projects/phpMyAdmin/).
Gruß,
soenk.e