Hallo Pascal,
ich glaube dein Problem fängt beim deklarieren der Variabeln an.
poste doch mal bitte diesen Code.Gruss Nikki
Kurze Erklärung zu Code:
Beim Laden der Seite erstelle ich automatisch eine Tabelle mit dem Inhalt einer Tabele einer MSQL Datenbank. Die Feldbeschriftung ist gleich dem Feldname der Tabelle.
-------------------------------------------------------------------
// Spalten auslesen und Spaltentitel generieren.
print ("<table Border=1>\n");
$spaltenanzahl = 0;
while ($spalten = mysql_fetch_field($sqlResultorder)){
print ("<TD bgcolor=grey><B>$spalten->name:\n");
$spaltenanzahl++;
}
while ($row = mysql_fetch_row ($sqlResultorder)){
print ("\n<TR>");
for ($counter=0; $counter < $spaltenanzahl; $counter++){
print ("<TD>$row[$counter]");
}
-------------------------------------------------------------------
Gleichzeitig erstelle ich nach dem gleichen Prinzip ein Formular. Dieses sendet mir die Inhalte selbst zurück zum in die DB schreiben. Diese Inhalte sind in den Variabeln {$spaltenname der tabelle} gespeichert.
-------------------------------------------------------------------
print ("<Form METHOD="POST">");
print ("<TABLE Border=1>\n");
$sqlResultorder = mysql_query ($sql, $dblink);
while ($spalten = mysql_fetch_field($sqlResultorder)){
print ("\n<TR><TD><B>$spalten->name: <TD><INPUT NAME=$spalten->name>");
}
print ("</table>\n<BR><INPUT TYPE=reset> <TD Align=left><INPUT TYPE=submit Value=Speichern><BR>\n </form><P>");
-------------------------------------------------------------------
Nun generiere ich mir am Anfang des Dokuments den für die Schreibaktion nötigen SQL (Hier habe ich auch das Problem, wesswegen ich diesen Thread angefangen habe).
-------------------------------------------------------------------
$sql = "SELECT * FROM $tabelle";
$sqlResultorder = mysql_query ($sql, $dblink);
$spaltenanzahl = 0;
while ($spalten = mysql_fetch_field($sqlResultorder)){
$spaltenarray[] = "$spalten->name";
$spaltenanzahl++;
}
for ($counter = 0; $counter < $spaltenanzahl; $counter++){
$spalten = mysql_fetch_field($sqlResultorder);
$spaltenstring .= "$spaltenarray[$counter], ";
$spaltenstring2 .= "'$$spaltenarray[$counter]', ";
}
$zeichen = strlen($spaltenstring)-2;
$spaltenstring = substr ($spaltenstring,0,$zeichen);
$zeichen = strlen($spaltenstring2)-2;
$spaltenstring2 = substr ($spaltenstring2,0,$zeichen);
$sqlinsert = "INSERT INTO $tabelle ($spaltenstring) VALUES ($spaltenstring2)";
-------------------------------------------------------------------
Spaltenstring2 ist mein Problem, da es nur die Variabelnamen und nicht deren Inhalt in meine Variabel $sqlinsert schreibt. Die Inhalte kriege ich wie ja schon erwähnt über mein Formular per methode=post
Hoffe auf Hilfe...
Grüssli
Pascal