grOOvekill@
LegendVienna Badass
|
S'gott, ich benötige ein klitzekleines CMS. Daher hab ich mal angefangen ws zu basteln. Dieses Sktipr macht nichts anderes, als die Datensätze in einer mysql Datenbank direkt in Texteingabefelder einer Tabelle zu stopfen. Unter jedem Datensatz befindet sich ein Link für's Speichern der Änderungen. Diese Links werden natürlich über die id separat angesprochen. Ebenso wird beim Speichern die id mittels 'hidden' übermittelt. Nachdem es ja mehrere Input's gibt sollte ja, glaube ich, automatisch ein Array erstellt werden, das ich mit der Schleife im Speichern-Körper auszuwerten versuche. Das gane funzt auch ganz gut, nur werden dummerweise Änderungen, die ich in diesen Texteingabefeldern vornehme, nicht in die Datenbank eingetragen und ich komm nicht drauf, warum nicht. Wer kann helfen? Hier der Kot  : [SIZE=2]<body>
<?php
$db = mysql_connect("xxx","xxx","xxx");
mysql_select_db("xxx",$db);
if ($speichern){
$tCount = count($id);
for ($n=0;$n<$tCount;$n++){
mysql_query("UPDATE table SET text=$text[n], data=$data[n] WHERE id=$id[n]");
}
echo "<b><center>Änderungen in Datenbank gespeichert!</center></b>"; ?>
<?php }?>
<table border=1 cellpadding=3 cellspacing=0 align=center bordercolor="#e0e0e0">
<tr>
<Th>id</a></th>
<Th>text</a></th>
<Th>pfad</a></th>
</tr>
<form method="post" enctype="multipart/form-data" action="<?php echo $PHP_SELF ?>">
<?php
$result = mysql_query("SELECT * FROM table",$db);
while ($zeile =mysql_fetch_array ($result)){
echo ("<tr>"); ?>
<td><center><?php echo $zeile[id] ?></center>
<input type="hidden" name="id" value="<?php echo $zeile[id] ?>"></td>
<td><textarea name=text cols=50 rows=10><?php echo $zeile[text] ?></textarea></td>
<td><input type="Text" name="pfad" size="50" value="<?php echo $zeile[pfad] ?>"></td></tr>
<tr><td colspan="3" align="center"><?
printf("<a href=\"%s?id=%s&speichern=yes\">speichern</a><br>", $PHP_SELF, $zeile["id"]);
echo ("</td></tr>");
}
echo ("</table>");
?>
</form>
</body>[/SIZE]
edit: sorry, der code war wirklich shice zu lesen.
Bearbeitet von atrox am 25.07.2003, 11:39 (hergott: bitte laß es brauchbare threadtitle regnen )
|
atrox
in fairy dust... I trust!
|
a) input type="hidden" name="id" wird zu input type="hidden" name="id[]" <-- sonts kein array (selbes gilt auch für die anderen form felder)
b) brauchst keine 'quotes' wenn du strings in die tabelle einfügst ?
|
grOOvekill@
LegendVienna Badass
|
Meinst du so? mysql_query("UPDATE table SET text=\"$text[n]\", data=\"$data[n]\" WHERE id=\"$id[n]\"");
|
HowlingWolf
...
|
verwend lieber ' statt " dann brauchst du's nicht escapen. Die Eigenschaften der Form Felder ghört auch noch geändert. kleine Anmerkung am Rande: Fließtext is ja was schönes aber bitte wenn du nen Code reinpostest der soo breit is, verwend mal ein paar Zeilenumbrüche mehr  Is echt schwer zu lesen das ganze wenn man keinen Monitor mit mehr als 1200x1024 Auflösung hat.
|
Phobos
✝
|
genau, sind geschüzte quotes
es reicht aber auch '
|
HowlingWolf
...
|
Nochwas ID is als eine Zahl definiert oder ein Array?? Falls eine Zahl, dann solltest du ID nicht in ' ' setzen. Ansonsten passts so.
|
grOOvekill@
LegendVienna Badass
|
Die Eigenschaften der Form Felder ghört auch noch geändert. Ehm, und was genau meinst du sollte ich bei den Form Feldern ändern??
|
HowlingWolf
...
|
a) input type="hidden" name="id" wird zu input type="hidden" name="id[]" <-- sonts kein array (selbes gilt auch für die anderen form felder)
|
grOOvekill@
LegendVienna Badass
|
Ja, aber ein Freund von mir meinte, daß das id-array in PHP beim submit automatisch aufgebaut wird und ich mich nicht extra darum kümmern muß. Schasndreck gewesen? edit: Also ich hab's jetzt auch mit id[] versucht, aber der Eintrag wird trotzdem nicht upgedated. Langsam gehen mir echt die Ideen aus. Ich komm einfach nicht drauf. Irgendwelche groben Fehler sind doch nicht drinnen, oder?
Bearbeitet von grOOvekill@ am 23.07.2003, 13:40
|
HowlingWolf
...
|
ID is doch kein Array oder seh ich das falsch?? Du übergibst doch nur ein Zahl, oder? Dann kannst die []-Klammern gleich weglassen nur musst dann beim UPDATE Query auch die " " weglassen. (nur bei der Variable ID) Die Variable wird ja sowieso als $id übergeben.
|
grOOvekill@
LegendVienna Badass
|
Also eigentlich übergebe ich die id als eine Zahl. Nachdem es aber mehrere Input Felder gibt, die ich ja irgendwie unterscheiden muß, wird die id in ein Array gepackt, welches ich anhand der for Schleife im SPEICHERN-Körper auszulesen versuche. Bin mir ja eigentlich auch gar nicht sicher, ob das auf diese Art und Weise funktioniert.
|
HowlingWolf
...
|
wtf? Die einzelnen Imputfelder kannst doch mit ihren Namen identifiziern. Da brauchst denen doch keine eigene ID zuweisen. Irgendwie versteh ich nimma ganz was du willst. Sorry jetzt steh ich auf der Leitung.
|
grOOvekill@
LegendVienna Badass
|
Okay, ich versuche mal anhand zweier Abbildungen zu erklären, was Sache ist. Es gibt ein Backend, über welches die Informationen eingetragen werden sollen, das sieht so aus: Die Infos, die hier eingetragen werden, werden in die mysql DB gepfeffert. Nachdem es aber wie in diesem Fall 3 verschiedene Datensätze gibt, die ID, TEXT UND PFAD heissen, benötige ich ja irgendwie eine weitere Identifikation damit die Datenbank weiß, welches Inputfeld upgedated werden soll. Die fertigen Infos sehen dann so aus: Der Text is natürllich wischiwaschi, keine Frage. Wie gesagt, es handelt sich nur mal um Tests. Aber egal, was ich beim Backend eintrage, der ursprüngliche, mittels PHPmyAdmin in die DB eingetragene Text ändert sich nicht, egal wieviel Text ich hinzufüge. War ich halbwegs verständlich? Ist irgendwie schwer zu beschreiben.
|
watchout
Legendundead
|
Meinst du so?
mysql_query("UPDATE table SET text='$text[$n]', data='$data[$n]' WHERE id='$id[$n]'");
lol -> im quote berichtigt was mir mal spontan auffiel
|
grOOvekill@
LegendVienna Badass
|
Ach, du Sch*****! Okay, hab's ausgebessert, aber so funzt es leider auch nicht. Jedesmal wenn ich auf Speichern klicke, erscheint wieder der ursprüngliche Text an der Stelle. Aber danke trotzdem!
|