|
| Autor |
Nachricht |
placido Helfer [User]

Anmeldung: 16.10.07 Beiträge: 194
|
Verfasst am: 22.07.2008, 18:26 Titel: Speichern von Formulardaten in der selben Spalte |
|
|
Hallo zusammen,
bei der Erstellung eines kleinen cms bin ich bei einer besonderheit (Sortierfunktion) auf eine kleine Hürde gestoßen.
Im moment sieht die Ausgabe für alle vorhandenen Seiten mit deren Sortierzahl so aus:
| Code: | <form id="form1" name="form1" method="post" action="save_sortierung.php">
<?
$query = "SELECT Id, Seite, Sortierung FROM cms ORDER BY Sortierung ASC ";
$sql = mysql_query($query);
while ($row = mysql_fetch_object($sql)){
echo ''.$row->Seite.'<input type="text" name="Sortierung"size="2" class="" value="'.$row->Sortierung.'" /><br>';
}
?>
<input name="Senden" type="submit" value="Speichern" />
</form> |
Somit bekomme ich eine Liste mit den Seitennamen die es gibt + ein Inputfeld für die Sortierreihenfolge. zur Erklärung: Die Sortierfunktion soll dafür da sein, die Seiten selbst ordnen zu können, zum Beispiel in absteigender Reihenfolge.
Nun bin ich bei dem problem, dass ich nicht rausfinde wie ich es speichern soll, da immer variable Namen übergeben werden.
Beim speichern kann ich ja immer nur einen übergebenen Wert speichern. Erhöht sich aber die Anzahl der Seiten, fehlt mir ja wieder ein Eintrag.
Ich weiß nicht genau wie ich das mit einem Array hinbekommen soll.
Hoffe ihr versteht mein Problem. _________________ Relativitätstheorie:
Wenn ich Dir einen Finger ins Auge stecke, haben wir beide einen Finger im Auge, aber ich bin relativ besser dran
Browserspiele
|
|
| Nach oben |
|
 |
Padjon Neuer [User]

Anmeldung: 24.07.08 Beiträge: 9
|
Verfasst am: 24.07.2008, 12:02 Titel: Re: Speichern von Formulardaten in der selben Spalte |
|
|
Hallöchen placido,
ich würde das ganze so lösen:
$i=0;
<form id="form1" name="form1" method="post" action="save_sortierung.php">
<?
$query = "SELECT Id, Seite, Sortierung FROM cms ORDER BY Sortierung ASC ";
$sql = mysql_query($query);
while ($row = mysql_fetch_object($sql)){
echo ''.$row->Seite.'<input type="text" name="Sortierung'.$i.'"size="2" class="" value="'.$row->Sortierung.'" /><br>';
$i++;
}
?>
<input name="Senden" type="submit" value="Speichern" />
</form>
So bekommst du dann als name jeweils Sortierung0 Sortierung1 Sortierung2 etc.
Und dann wertest das auf dem Zielscript aus
| Code: |
$i=0;
while(isset($_POST['Sortieren'.$i]) && $_POST['Sortieren'.$i]) !="")
{
//Speicher den Inhalt aus $_POST['Sortieren'.$i] in Datenbank
$i++;
} |
|
|
| Nach oben |
|
 |
placido Helfer [User]

Anmeldung: 16.10.07 Beiträge: 194
|
Verfasst am: 24.07.2008, 12:37 Titel: |
|
|
Hallo, und danke für deine Antwort.
Also mein Speichern sieht nun so aus:
| Code: | <?php
$i=0;
while(isset($_POST['Sortieren'.$i]) && $_POST['Sortieren'.$i]) !="")
{
//Speicher den Inhalt aus $_POST['Sortieren'.$i] in Datenbank
$aendern = "UPDATE cms SET Sortierung='$_POST['Sortieren'.$i]'";
$update = mysql_query($aendern);
if($update)
echo "Datensatz wurde editiert";
else
echo "Datensatz konnte nicht editiert werden";
//dasd
$i++;
}
?> |
Leider kommt dann dieser Error:
| Code: |
Parse error: parse error, unexpected T_IS_NOT_EQUAL in /var/www/web1/html/sql6/admin/save_sortierung.php on line 47 |
Zeile 47 ist
while(isset($_POST['Sortieren'.$i]) && $_POST['Sortieren'.$i]) !="")
Danke für deine Hilfe _________________ Relativitätstheorie:
Wenn ich Dir einen Finger ins Auge stecke, haben wir beide einen Finger im Auge, aber ich bin relativ besser dran
Browserspiele
|
|
| Nach oben |
|
 |
Padjon Neuer [User]

Anmeldung: 24.07.08 Beiträge: 9
|
Verfasst am: 24.07.2008, 12:47 Titel: |
|
|
| Code: |
while(isset($_POST['Sortieren'.$i]) && $_POST['Sortieren'.$i]) !="")
|
Da ist mir wohl eine Klammer zu viel rein gerutscht
->
so dann richtig:
| Code: |
while(isset($_POST['Sortieren'.$i]) && $_POST['Sortieren'.$i] !="")
|
|
|
| Nach oben |
|
 |
placido Helfer [User]

Anmeldung: 16.10.07 Beiträge: 194
|
Verfasst am: 24.07.2008, 12:52 Titel: |
|
|
mh.. ich musste die zeile mit dem Speichern durch diese beiden ersetzen:
$Sortierung = $_POST['Sortieren'.$i];
$aendern = "UPDATE cms SET Sortierung='$Sortierung'";
Aber nun wird nichts ausgeführt. Weder Error nachricht, noch bestätigung. Gespeichert wird natürlich auch nicht.
Weißt du woran es liegt? _________________ Relativitätstheorie:
Wenn ich Dir einen Finger ins Auge stecke, haben wir beide einen Finger im Auge, aber ich bin relativ besser dran
Browserspiele
|
|
| Nach oben |
|
 |
Padjon Neuer [User]

Anmeldung: 24.07.08 Beiträge: 9
|
Verfasst am: 24.07.2008, 13:14 Titel: |
|
|
$aendern = "UPDATE cms SET Sortierung='".$Sortierung."'";
oder wenn sortierung ein feld vom integer typ ist dann geht auch einfach
$aendern = "UPDATE cms SET Sortierung=$Sortierung";
Aber mit der Update-Anweisung würdest du den Wert aller Datensätze ändern.
Hier fehlt n WHERE mit dem du eingrenzt welcher Datensatz eigentlich geändert werden soll
---
Porbier mal das aus und schau was dabei raus kommt
| Code: |
<?php
$i=0;
while(isset($_POST['Sortieren'.$i]) && $_POST['Sortieren'.$i]) !="")
{
echo $_POST['Sortieren'.$i]);
$i++;
}
?>
| [/code]
|
|
| Nach oben |
|
 |
placido Helfer [User]

Anmeldung: 16.10.07 Beiträge: 194
|
Verfasst am: 24.07.2008, 13:22 Titel: |
|
|
Keine Ausgabe der Postdaten.
hab alles so gemacht wie du sagtest .
EDIT:
habs hinbekommen. War ein schreibfehler drin. Sortieren $i wurde übergeben, Sortierung $i erwartet.
Kannst du mir noch sagen wie die Where bedingung aussehen muss, damit der nicht alle überschreibt?
Vielen herzlichen dank _________________ Relativitätstheorie:
Wenn ich Dir einen Finger ins Auge stecke, haben wir beide einen Finger im Auge, aber ich bin relativ besser dran
Browserspiele
|
|
| Nach oben |
|
 |
Padjon Neuer [User]

Anmeldung: 24.07.08 Beiträge: 9
|
Verfasst am: 24.07.2008, 13:50 Titel: |
|
|
| Code: |
<form id="form1" name="form1" method="post" action="save_sortierung.php">
<?
$i=0;
$query = "SELECT Id, Seite, Sortierung FROM cms ORDER BY Sortierung ASC ";
$sql = mysql_query($query);
while ($row = mysql_fetch_object($sql)){
echo ''.$row->Seite.'<input type="text" name="Sortierung'.$i.'"size="2" class="" value="'.$row->Sortierung.'" /><input type="hidden" name="Id'.$i.'"size="2" class="" value="'.$row->Id.'" /><br>';
$i++;
}
?>
<input name="Senden" type="submit" value="Speichern" />
</form>
|
$aendern = "UPDATE cms SET Sortierung=$Sortierung WHERE Id=".$_POST['id'.$i];
[/code]
|
|
| Nach oben |
|
 |
placido Helfer [User]

Anmeldung: 16.10.07 Beiträge: 194
|
Verfasst am: 24.07.2008, 15:50 Titel: |
|
|
Vielen Dank. Funktioniert alles super.
Danke dir. _________________ Relativitätstheorie:
Wenn ich Dir einen Finger ins Auge stecke, haben wir beide einen Finger im Auge, aber ich bin relativ besser dran
Browserspiele
|
|
| Nach oben |
|
 |
|
|