Mehrere Daten kopieren SQL / EDIT |
Startpost-Retter
Mitglied
 
Dabei seit: 24.01.2011
Beiträge: 12.246
Herkunft: Gegen Bilderklau, intern
 |
|
Mehrere Daten kopieren SQL / EDIT |
 |
Hallo ;D
Ich habe ein Problem mit meinem Shop :>
Zunächst werden die Produkte, die das Mitglied auswählt, in die Tabelle warenkorb gespeichert.
Diese Tabelle besteht aus:
wkid | login | pid | artikelbez | kategorie | art | menge | stkpreis
Funktioniert bisher auch mit editieren, löschen usw. ohne Probleme.
Nachdem das Mitglied nun auf bestellen geklickt hat, sollen diese Sachen in die Tabelle zubehoer gespeichert werden. Allerdings nur, wenn das Produkt dem Mitglied nicht schon gehört. Besitzt er dieses Produkt bereits, soll die Menge aktualisiert werden.
Diese Tabelle besteht aus:
zid | id | pid | artikelbez | kategorie | art | menge | pferd
Der dafür verwendete Code ist:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
|
if (isset($_POST["bestellen"])) {
$pferd = $_POST["pferd"];
$warenkorb = mysql_query("SELECT * FROM warenkorb WHERE login = '$login'");
while($row_wk = mysql_fetch_array($warenkorb)) {
$login_wk = $row_wk["login"];
$pid_wk = $row_wk["pid"];
$artikelbez_wk = $row_wk["artikelbez"];
$kategorie_wk = $row_wk["kategorie"];
$art_wk = $row_wk["art"];
$menge_wk = $row_wk["menge"];
}
$zubehoer = mysql_query("SELECT * FROM zubehoer WHERE id = '$login' AND pid = '$pid_wk'");
while($row_zh = mysql_fetch_array($zubehoer)) {
$id_zh = $row_zh["id"];
$pid_zh = $row_zh["pid"];
$mitglied_zh = $row_zh["mitglied"];
$artikelbez_zh = $row_zh["artikelbez"];
$kategorie_zh = $row_zh["kategorie"];
$art_zh = $row_zh["art"];
$menge_zh = $row_zh["menge"];
}
$num = mysql_num_rows($zubehoer);
if ($num == "0") {
mysql_query("INSERT INTO zubehoer (id, pid, artikelbez, kategorie, art, menge, pferd) SELECT login, pid, artikelbez, kategorie, art, menge, '".$pferd."' FROM warenkorb WHERE login = '$login' AND art = 'pferd'") or die(mysql_error());
mysql_query("INSERT INTO zubehoer (id, pid, artikelbez, kategorie, art, menge) SELECT login, pid, artikelbez, kategorie, art, menge FROM warenkorb WHERE login = '$login' AND art <> 'pferd'") or die(mysql_error());
} else {
mysql_query("UPDATE zubehoer SET menge=menge+$menge_wk WHERE id = '$login' AND pid = '$pid_wk'") or die(mysql_error());
}
echo "<p>Vielen Dank für deine Bestellung.</p>";
include("footer.php");
exit;
} |
|
Das Eintragen neuer Dateien funktioniert soweit, allerdings kommen jetzt gleich mehrere Probleme, die ich einfach nicht bewältigt bekomme.
1. Beim UPDATE Befehl ändert er mir grundsätzlich nur einen Datensatz. Allerdings sollen alle Daten vom Zubehör geupdatet werden, die sich derzeit im Warenkorb befinden.
2. Wenn das Mitglied ein Produkt um eins erhöhen will (also sich ein bereits vorhandenes Produkt noch einmal kauft), dabei aber zwei neue Artikel im Warenkorb hat, würde durch die If-Anweisung nur der eine Artikel geupdatet werden, die anderen zwei würden verworfen werden, denn: $num wäre durch den einen erhöhten Artikel nicht mehr 0. Allerdings kann nichts geupdatet werden, was nicht vorhanden ist.
3. Die Mitglieder sollen später das Zubehör für ein bestimmtes Pferd ihrer Wahl kaufen können. Im Moment funktioniert es mit dem neuen Eintragen gut; es wird der Pferdename nur in die Spalte "Pferd" geschrieben, wo die "Art" des Produkt gleich "pferd" ist.
Das Eintragen ist also nicht das Problem, allerdings eben auch wieder das Updaten, da er das Produkt nur dann Updaten soll, wenn $pferd dem eingetragenen Pferd im Produkt der Zubehörtabelle entspricht.
So, ich hoffe das konnte man verstehen :/ Nach 4 stunden Verzweiflung steh ich etwas neben mir.
LG
Nella
__________________ Dieser Beitrag gehörte zu einer Löschaktion von Beiträgen eines Users, er wurde diesem User überschrieben, damit der Thread nicht an Sinn verliert.
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von BlackTear: 08.07.2010 22:30.
|
|
05.07.2010 21:36 |
|
|
Stelo

de drecksche Assl
 

Dabei seit: 28.04.2005
Beiträge: 1.628
 |
|
Also hab es noch nicht geschafft, mich in den ganzen Code einzulesen, aber was mich gerade ein wenig verwirrt ...
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
$warenkorb = mysql_query("SELECT * FROM warenkorb WHERE login = '$login'");
while($row_wk = mysql_fetch_array($warenkorb)) {
$login_wk = $row_wk["login"];
$pid_wk = $row_wk["pid"];
$artikelbez_wk = $row_wk["artikelbez"];
$kategorie_wk = $row_wk["kategorie"];
$art_wk = $row_wk["art"];
$menge_wk = $row_wk["menge"];
}
$zubehoer = mysql_query("SELECT * FROM zubehoer WHERE id = '$login' AND pid = '$pid_wk'"); |
|
Du schließt doch die erste while-Schleife bevor du die Daten in dem zweiten Query vergleichst, oder? Somit vergleichst du ja nur EINMAL $pid_wk mit dem Query. Denn die Variablen in der ersten Schleife werden ja immer wieder überschrieben und nur die letzte bleibt sozusagen übrig.
Ist das Absicht?
__________________
"Es gibt keine Romanhelden mehr,
weil es keine Individualisten mehr gibt,
weil die Individualität verlorengegangen,
weil der Mensch einsam, jeder Mensch gleich einsam,
ohne Recht auf individuelle Einsamkeit ist und
eine namen- und heldenlose einsame Masse bildet."
Günter Grass

|
|
14.07.2010 18:29 |
|
|
|
Impressum
|