WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik



Im Homepage und Webhosting-Forum --- Mehrere Datensätze mit FOR-Loop updaten - aber wie?

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.

Forum » PHP & MySQL » Mehrere Datensätze mit FOR-Loop updaten - aber wie? - 27 Juli 2024 Antworten
im Forum für Webhosting Homepage gefunden:
Mehrere Datensätze mit FOR-Loop updaten - aber wie?
Nobbidobby
Pixelschubser
Threadstarter




Beiträge: 5

Hallo,

ich arbeite gerade an einem Quiz-Editor und hänge grade fest...
Ich habe ein 'Quiz-Update-Formular' in dem alle (20) Quiz-Fragen aufgeführt werden mit vielen veränderbaren Details wie mögliche Antworten, Punkte, Bild-Datei usw.

Nach evt. Abändern schicke ich das ganze per 'Post' zum Update-Script und hier soll eine Update-Query die Daten in der Datenbank updaten. Jede Quiz-Frage ist ein Datensatz.
Da es ja mehrere Datensätze (20) sind, ändere ich mit einer FOR-Schleife die WHERE-Bedingung ab. Alles Cool, bis zu diesem Punkt. Es werden tatsächlich alle gewünschten Datensätze abgeändert.

Code:
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8:
$Anzahl = 20; // z.B. 
for ($e = 0,$no = 1; $e < $Anzahl; $e++,$no++) { 

$query = "UPDATE Quiz_Editor SET question='$question' WHERE no = '$no' "; 

mysql_query($query); 

} 

NUR: Im Datensatz von z.B. Quiz-Frage 3 sollen natürlich nur die geänderten Daten von der Frage 3 vom Formular rein - und nix anderes.
Mein Problem: Netterweise sind ja alle Formulardaten im Array S_POST[ 'you name it' ] enthalten.
Momentan nummeriere ich die Namen der Variablen vom Formular durch und sie sind so auch im POST-Array: question1, question2 usw.
Jetzt wärs natürlich naheliegend dieses POST-Array auch durchzu'loopen' um immer die passenden Daten zu bekommen - so in der Art:


Code:
1: 
2: 
3: 
4: 
5:
for ($e = 0,$no = 1; $e < $Anzahl; $e++,$no++) { 

$query = "UPDATE Quiz_Editor SET question='$_Post[question$no]' WHERE no = '$no' "; 
mysql_query($query); 


...aber das geht anscheinend so nicht.

Wie müsste man die Query und vielleicht auch die übergegebenen Daten vom Formular abändern, damit das klappt?

Vielen Dank im voraus!



---
Entweder es haut hin oder zurück!

Diese Nachricht wurde geändert von: Nobbidobby
  Profil   Website   Editieren   Zitieren
HoRnominatoR
Mausakrobat




Beiträge: 161

kennst du foreach() ?

---
get OPERA for free

  Profil   E-Mail   Website   Editieren   Zitieren
subjective
Forenheld




Beiträge: 844

Du kannst in Strings zwar direkt Variablen einsetzen, wenn es komplexer wird, mußt du jedoch den String unterbrechen.

1:
... field = '".mysql_escape_string($_POST['question'.$i])."'...


Außerdem kann PHP dort auch Arrays erzeugen. Wenn du den Namen im Input-Field passend angibst:

1:


erzeugt PHP daraus ein Array auf welches du mit $_POST['question'][1] zugreifen kannst.

---
Weaverslave

  Profil   Website   Editieren   Zitieren
Nobbidobby
Pixelschubser
Threadstarter




Beiträge: 5

Vielen Dank! - Mein lieber Mann, da war ich aber nahe dran!

$_POST['question'][$i] - man hängt das $i einfach in eckigen Klammern dran...
Das mit ".mysql_escape_string($_POST['question'.$i]).", sieht sehr interessant aus, muss ich noch austesten.

Gut- ich habs jetzt eigentlich gelöst, meine Quizze laufen, allerdings ohne foreach.
Ich hatte das vorher mit foreach probiert, doch muss ich da, offen gesagt, noch eine Wissenslücke füllen.

Man würde das in etwa so schreiben?

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10:
// $array beinhaltet $_POST[' usw. '] 

foreach ( $array as $v) 
{

// weitere Aktionen, wie z.B. $v in die Datenbank einfügen 

query = "Update XY field = '$v' "; 

}




---
Entweder es haut hin oder zurück!

  Profil   Website   Editieren   Zitieren
languitar
Foren-Team




Beiträge: 2795

das Escapen mit mysql_escape sollet man sich grundsätzlich angewöhnen.

Kennst du das PHP-Manual: www.php.net ?

foreach ist viel praktischer in den meisten Fällen.

  Profil   Editieren   Zitieren
 

Antworten
Forum » PHP & MySQL » Mehrere Datensätze mit FOR-Loop updaten - aber wie?

Aktuelle Beiträge zur Hilfe im Forum für Homepage - Mehrere Datensätze mit FOR-Loop updaten - aber wie? im Forum Homepage Hosting AntwortenLetztes Posting
Rangliste (Ohne Mysql) (Kompliziertes Ordner System)
in "PHP & MySQL"
3 19.07.2021 06:00 von newtopblog
kleines problem mit phpadmin
in "PHP & MySQL"
5 11.04.2021 22:22 von Zavylon
Counter mit PHP
in "PHP & MySQL"
4 22.03.2021 16:29 von Robeni
Fehlermeldung beim Importieren der Datenbank in phpmyadmin
in "PHP & MySQL"
0 02.08.2019 22:14 von iFuchs
CMS für Online Shop
in "PHP & MySQL"
18 26.05.2019 13:29 von raiserle
Regestrierungproblem
in "PHP & MySQL"
3 28.11.2018 13:20 von norbertofahey
PHP Datum ausgeben?
in "PHP & MySQL"
1 19.10.2018 10:04 von Klaus1973
PHP befehl ausführen
in "PHP & MySQL"
11 16.08.2018 09:08 von Klaus1973
Visual Composer selber programmieren?
in "PHP & MySQL"
0 22.01.2017 23:45 von Redji
php preg_replace_callback für dynamischen Link
in "PHP & MySQL"
0 05.07.2016 11:02 von Rm21
PHP Code verschlüsseln
in "PHP & MySQL"
20 21.02.2016 21:25 von Kilian1
migrierter WP-Blog läuft nicht ...
in "PHP & MySQL"
0 04.02.2016 02:01 von Oxygon
Fertige PHP Scripte für Ihre Homepage
in "PHP & MySQL"
0 16.12.2015 12:02 von PHP-Script-Shop



Besucher : 8060235    Heute : 422     Gestern : 1088     Online : 56     27.7.2024    7:23      0 Besucher in den letzten 60 Sekunden        
Nach oben