hab String mit Variablennamen,brauche String mit Var.inhalt
Pascal
- php
0 Andreas Korthaus0 Pascal
0 Nicole
Hallöchen
Kurze Problembeschreibung: Ich setze mir einen String automatisch zusammen, um damit eine MYSQL Abfrage durchzuführen
der fertige String sieht so aus:
$sqlinsert = "INSERT INTO $tabelle ($spaltenstring) VALUES ($spaltenstring2)";
Mit den Variablen $tabelle und $spaltenstring klappt dies auch.
In der Variable $spaltenstring2 ist z.B der String "'$Anlassname', '$Gruppe'" enthalten. An diesem Punkt würde ich aber den Inhalt der Variablen $Anlassname oder Gruppe benötigen, nicht den Variablenname.
Zur Verdeutlichung:
Momentan sieht die fertig generierte SQL Abfrage bei mir so aus:
INSERT INTO tblanlass (Anlassname, Gruppe) VALUES ('$Anlassname', '$Gruppe')
Brauchen würde ich aber folgendes:
Wenn der Inhalt der Variablen $Anlassname und $Gruppe 1 wären
INSERT INTO tblanlass (Anlassname, Gruppe) VALUES ('1', '1')
Weiss jemand, wie das geht? Vielen Dank für eure Hilfe
Grüssli
Pascal
Hi!
In der Variable $spaltenstring2 ist z.B der String "'$Anlassname', '$Gruppe'" enthalten. An diesem Punkt würde ich aber den Inhalt der Variablen $Anlassname oder Gruppe benötigen, nicht den Variablenname.
Ich vermute dass Du nicht den Unteschied zwischen ' und " kennst, daher lies am besten mal im Manual worin der Unterschied besteht: http://www.php.net/manual/de/language.types.string.php
Wenn Du das verstanden hast und das Problem trotzdem nicht selbst lösen kannst poste mal den Code-Ausschnitt in dem Du die Strings generierst.
Grüße
Andreas
Ich vermute dass Du nicht den Unteschied zwischen ' und " kennst, daher lies am besten mal im Manual worin der Unterschied besteht: http://www.php.net/manual/de/language.types.string.php
Wenn Du das verstanden hast und das Problem trotzdem nicht selbst lösen kannst poste mal den Code-Ausschnitt in dem Du die Strings generierst.
Grüße
Andreas
Stimmt genau
Werde wohl was lesen müssen...
;-)
Grüssli
Pascal
Hallo Pascal,
ich glaube dein Problem fängt beim deklarieren der Variabeln an.
poste doch mal bitte diesen Code.
Gruss Nikki
Hallo Pascal,
ich glaube dein Problem fängt beim deklarieren der Variabeln an.
poste doch mal bitte diesen Code.Gruss Nikki
Hallo Nikki
Hier ist der Quelltext...
Ich kenne nun den Unterschied zwischen " und ', hab das Problem aber immer noch nicht lösen können
<?
// Mit der Datenbank verbinden: (noch ändern in pconnect)
$dblink = mysql_pconnect("localhost:3306", "localhost","");
mysql_select_db ("terminplaner", $dblink);
// Tabellenname
$tabelle = "tblanlass";
// SQL Statements zur Datenmanipulation
$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)";
echo "$sqlinsert";
// Eintrag in die Tabelle Schreiben
if ( $Anlassname != "" ){
mysql_query ($sqlinsert, $dblink);
print("Der Eintrag wurden in die Datenbank geschrieben<P>Vorhandene Einträge:<P>");
}
// in Datenbank vorhandene Einträge auslesen und ausgeben
$sqlResultorder = mysql_query ($sql, $dblink);
// 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++;
}
// Zeilen hinzufügen
while ($row = mysql_fetch_row ($sqlResultorder)){
print ("\n<TR>");
for ($counter=0; $counter < $spaltenanzahl; $counter++){
print ("<TD>$row[$counter]");
}
$del = "$row[0]";
print ("<TD><a href=anlass.php?change=$del>Zeile bearbeiten</a>" );
print ("<TD><a href=anlass.php?del=$del>Zeile löschen</a>" );
}
print ("</table><P>");
print ("<P>Neuer Anlass hinzufügen:<P>");
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>");
?>
Grüssli
Pascal
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