Advanced SQL - Praxistutorial 2 - Angebote an mich ablehnen
1. Die Abschnitte
- Vorwort
- Übersicht
- Angebote von mir anzeigen
- Angebote von mir zurückziehen
- Angebote von mir ändern
- Angebote an mich anzeigen
- Angebote an mich ablehnen
- Angebote an mich annehmen Teil 1
- Angebote an mich annehmen Teil 2
- Ein paar Hinweise
2. Die Sache mit den zwei submit
-Buttons
Ich wurde schon mehrfach gefragt, wie man so was einbauen kann und darum hole ich das jetzt endlich nach. Besser spät als nie. Also, wir haben zwei
submit
-Buttons mit demselben Namen und unterschiedlichen Werten (value
). Und darüber steuern wir die weiteren Aktionen.
else if ('myoffers' == $_POST['do']) {
if ('Ablehnen' == $_POST['action']) {
$market -> cancelOffer();
}
else if ('Annehmen' == $_POST['action']) {
$market -> acceptOffer();
}
}
Aber!
Wie ich schon sagte, ist das eine sehr unvorteilhafte Umsetzung. Denn sobald sich die Beschriftung ändert, muss die Bedingung angepasst werden. Und das
kann man sehr schnell vergessen. Ein Tipp: gebt den Buttons unterschiedliche Namen wie zum Beispiel decline
und accept
. Dann könnt
ihr zum Beispiel sauber über ein isset($_POST['decline'])
prüfen.
3. Die Methode cancelOffer
... ist nichts Weltbewegendes. Wir bauen ein eigenes Array aus den Werten von $_POST['id']
auf, das von Aufbau her praktisch identisch ist mit dem
aus den Methoden, wo wir Daten per selectWithBind
holen. Als Platzhalter arbeiten wir wieder mit dem Fragezeichen.
public function cancelOffer() {
$query = 'DELETE FROM angebot WHERE id = ?';
$params = array();
for ($i = 0; $i < count($_POST['id']); $i++) {
$params[] = array(1, $_POST['id'][$i], PDO::PARAM_INT);
}
$result = $this -> db -> deleteWithBind($query, $params);
}
4. Die Methode deleteWithBind
... kennen wir ja schon.
public function deleteWithBind($query, $params) {
$stmt = $this -> prepare($query);
for ($i = 0; $i < count($params); $i++) {
$stmt -> bindValue($params[$i][0], $params[$i][1], $params[$i][2]);
$stmt -> execute();
}
}
zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt