anoniem Geplaatst: 29 januari 2003 Delen Geplaatst: 29 januari 2003 Met de volgende code zet ik een artikel dat iemand in zijn viruele winkelwagen heeft in het order bestand. Het probleem is echter dat voor elk product twee dezelfde records worden aangemaakt, twee dezelfde dus. Hoe kan ik dit oplossen? De code: [code:1:8d315bef84] $result1=mysql_query("SELECT * FROM Winkelwagentmp WHERE SID='$SID'"); while ($row1 = mysql_fetch_array($result1)) { $Artnr=$row1[0]; $Omschrijving=$row1[1]; $Aantbesteld=$row1[2]; $result2=mysql_query("SELECT * FROM Artikel WHERE Artikelnummer='$Artnr'"); while ($row2=mysql_fetch_row($result2)) { $Prijs=$row2[18]; $To[$i]=(($Aantbesteld * $Prijs)); $Prijs=number_format($Prijs,"2",".",""); $Totalex=number_format($To[$i],"2",".",""); $Totalinbtw=(($Totalex * 1.19)); $Totalin=number_format($Totalinbtw,"2",".",""); } mysql_query("INSERT INTO Orderrgl VALUES ('$Ordrglid','$Ordernr','','$Artnr','$Omschrijving','$Aantbesteld','','','$Prijs','','$Totalex','$Totalin','')"); } [/code:1:8d315bef84] De insert buiten de while-loop zetten helpt niet. :( Quote Link naar reactie
anoniem Geplaatst: 29 januari 2003 Auteur Delen Geplaatst: 29 januari 2003 Uit de code haal ik niet dat je het record twee keer schrijft. Kan het niet zo zijn dat de bezoeker dubbelklikt op de link of button, waardoor het php-script twee keer wordt aangeroepen? Quote Link naar reactie
anoniem Geplaatst: 29 januari 2003 Auteur Delen Geplaatst: 29 januari 2003 Als je aan elke order een unieke code of uniek getal toewijst zou je daarop kunnen checken voordat je het geheel wegschrijft. Op die manier kan eenzelfde record nooit tweemaal geschreven kunnen worden (zoals dat ook hoort). Dus kijk even hoe je primary key is samengesteld... - Bas Quote Link naar reactie
anoniem Geplaatst: 29 januari 2003 Auteur Delen Geplaatst: 29 januari 2003 Nou ik heb momenteel geen primary key ingesteld. Het gaat om een online webwinkel, de producten van een bezoeker worden tijdelijk opgeslagen in een tmp tabel met een sessie id. Dus vandaar de variable SID. Bij het displayen van de data heb ik geen probleem ook niet met dit stukje code als ik i.p.v. die insert een echo ""; neerzet. Op welke velden zou ik dan mijn Primary ket doen, het SID is niet bij elke record uniek. Quote Link naar reactie
anoniem Geplaatst: 29 januari 2003 Auteur Delen Geplaatst: 29 januari 2003 [quote:f95f260180="George W. Bush"]Op welke velden zou ik dan mijn Primary ket doen[/quote:f95f260180]Maakt op zich niets uit, als je maar zeker weet dat de primary key uniek is. Dit mag evt een combinatie van meerdere velden zijn. Is één van deze twee niet uniek, of anders de combinatie? $Ordrglid $Ordernr - Bas Quote Link naar reactie
anoniem Geplaatst: 29 januari 2003 Auteur Delen Geplaatst: 29 januari 2003 Nou in de tabel 'winkelwagentmp' is geen Primary gedefinieerd. In deze tabel zitten de artikelen van het denkbeeldige winkelwagentje. Als een bezoeker een order verstuurd, moeten die producten in de tabel 'orderrgl', samen met nog wat extra artikel gegevens uit de tabel 'artikel'. In de tabel 'orderrgl is het ordrglid de Primary Key, en is het veld ingesteld op 'auto_increment'. Deze wordt ook steeds goed ingevuld. Maar toch worden voor elk product twee records aangemaakt in plaats van 1. Iemand nog oplossingen? Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen