Ich bin gerade irgendwie durcheinander. Bastel gerade an einen kleinen Warenkorb, wobei die "Bestellungen" erst über Session laufen und dann nach "Bestellung" in einer Datenbank gestored werden.
Nun soll der Benutzer beim Warenkorb auch die Anzahl der Artikel ändern können.
Wie folgt überprüfe ich also: Artikelanzahl - Eingabe = Anzahl der neuen bzw. zu löschenden Elemente:
if(isset($_POST['payment'])) {
$double = array_count_values($articlecount);
for($i = 0; $i < count($_POST['article']); $i++) {
$article = mysql_fetch_assoc(mysql_query("SELECT * FROM `wp_shop_articles` WHERE article='" . $_POST['article'][$i] . "' LIMIT 1"));
print "<br>" . $_POST['article'][$i] . ", Vorher: " . $double[$_POST['article'][$i]] . ", Nachher: " . $_POST['quantity'][$i] . " = " . ($_POST['quantity'][$i] - $double[$_POST['article'][$i]]);
// ADD
if($_POST['quantity'][$i] - $double[$_POST['article'][$i]] >= 1) {
for($a = 0; $a < $_POST['quantity'][$i] - $double[$_POST['article'][$i]]; $a++) {
$_SESSION['cart']['articles'][] = array("id" => $_POST['article'][$i], "price" => $article['article_price']);
}
// DELETE
} else if($_POST['quantity'][$i] - $double[$_POST['article'][$i]] <= -1) {
for($a = 0; $a < abs($_POST['quantity'][$i] - $double[$_POST['article'][$i]]); $a++) {
// $_POST['article'][$i]
}
}
}
}
Als erstes wird halt überprüft, wieviele Artikel insgesamt in der Session vorhanden sind und ob diese doppelt sind ($double).
Wenn nun der Wert über +1 ist, dann soll dieser dementsprechend die anzahl X an Artikeln in der Session hinzufügen. Klappt wunderbar.
Jezt stellt sich bei mir die Frage (Da ich gerade irgendwie nicht klar denken konnte), wie ich nun eine X beliebige Anzahl wieder aus einem Array "löschen" kann (ja, usort möchte ich danach auch verwenden).
Mein denkstoß verlief erst so: Nehme X array-Artikel heraus (löschen mittels unset) die die ID Y besitzen und sortiere den index neu.
Das Array ist folgendermaßen aufgebaut:
cart => (
articles => (
[0] = array(id => artikel_id_1, preis => 0.99 €)
[1] = array(id => artikel_id_2, preis => 2.99 €)
[2] = array(id => artikel_id_1, preis => 0.99 €)
[3] = array(id => artikel_id_2, preis => 2.99 €)
[4] = array(id => artikel_id_1, preis => 0.99 €)
)
)
Bei mir stellt sich nun eigendlich die Frage, wie ichs am besten mache:
Im Artikelarray sind sooft die Artikel angegeben, wie der Kunde auch bestellen möchte. Angenommen dieser würde nun 2 Artikel entfernen (Beispielswese 2x den Artikel mit der ID artikelid2).. Wie muss ich nun vorgehen, dass (egal von welcher Position nun) einer der artikel entfernt werden.
Ich benötige eigendlich nur ein kleinen Denkstoß, vielleicht kann mir ja jemand Ideen herüberschieben. Vielen Dank.