Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Implode oder was?
Frage
Aaalso, gegeben folgende Situation:
- Eine Liste von Datensätzen
- Diejenigen Datensätze, welche durch eine Checkbox markiert sind, sollen updated (was man nicht alles eindeutschen muss *argh) werden
- Das ganze wollte ich durch eine implode Funktion realisieren
- Die Datensätze werden aber nicht geändert
Hier ist der Code, der nach dem Abschicken des Formulars greifen soll:
if (isset($_POST[posted]) && isset($_POST[mark])) {
$sql2 = "UPDATE userdata SET user_zugelassen=´j´
WHERE user_id IN (´.implode(´,´, ´$_POST[mark]´).´)";
if (mysql_query($sql2)) {
echo "Die ausgewählten Datensätze wurden zugelassen.";
} else {
echo "<font color=´red´><b>Fehler bei der Übertragung.</b></font><br>";
}
}
Meine Vermutung ist, dass in implode nicht die einzelnen Variablen erkannt werden, sodass user_id natürlich nicht in dem implode sein kann (denn ich bekomme trotzdem die Rückmeldung, dass $sql2 funktioniert hat). Bin in Sachen PHP noch ziemlich weit am Anfang und habe die Idee mit dem implode irgendwo im Netz aufgeschnappt, aber wo ist der Fehler? Kann man das möglichst einfach zurechtbiegen?
Antwort 1 von JanVer
Weiß ja nicht, wie Dein Formular aufgebaut ist, aber bevor ich eine SQL-Anweisung endgültig implementiere, prüfe ich sie vorher durch In-Augenschein-Nahme.
echo $sql2;
wäre also mein erster Schritt. Des weiteren musst Du noch checken, ob die IN Liste nicht leer ist. So etwas sollte auch abgefangen werden.
echo $sql2;
wäre also mein erster Schritt. Des weiteren musst Du noch checken, ob die IN Liste nicht leer ist. So etwas sollte auch abgefangen werden.
Antwort 2 von Jasmin-chan
Also den implode habe ich schon getestet, der gibt wie er es auch sollte solche Zeichenketen aus: 1,2,3, ...
Antwort 3 von disco
moin
hab keine ahnung von dem implode befehl. für mich sieht einfach nur der string falsch aus.
probier das mal:
$sql2 = "UPDATE userdata SET user_zugelassen=´j´ WHERE user_id IN (".implode(´´,´´,$_POST[mark]).")";
und wenn das nicht geht poste mal bitte was er dir mit
echo $sql2; ausgibt.
g,
disco
hab keine ahnung von dem implode befehl. für mich sieht einfach nur der string falsch aus.
probier das mal:
$sql2 = "UPDATE userdata SET user_zugelassen=´j´ WHERE user_id IN (".implode(´´,´´,$_POST[mark]).")";
und wenn das nicht geht poste mal bitte was er dir mit
echo $sql2; ausgibt.
g,
disco
Antwort 4 von Jasmin-chan
@disco
Stimmt, jetzt wo du´s sagst fällt´s mir auch auf. Man, ich bin echt blutiger Anfänger ^^"
Jetzt funktioniert´s tadellos, danke Leute!
Stimmt, jetzt wo du´s sagst fällt´s mir auch auf. Man, ich bin echt blutiger Anfänger ^^"
Jetzt funktioniert´s tadellos, danke Leute!

