hoe kan je eigelijk met een insert tabel een row verplaatsen bijvoorbeeld ik heb in 'winkelwagen'
de row's
id naam prijs ip
1 product 22.50 22,33,33,0
1 product 22.50 22,33,33,0
1 product 22.50 22,33,33,0
1 product 22.50 220,330,330,00
hoe kan ik er dan voor zorgen dat ik alles met ip 22,33,33,0 verplaats naar
Vraagje: Wat is het verschil tussen 'winkelwagen' en 'wachtrij' ? Kortom, wat is de noodzaak om de gegevens te verplaatsen?
Offtopic: Het gebruik van het ip-adres is uitermate onbetrouwbaar, denk bv. aan een proxy. Klanten van AOL hebben allemaal hetzelfde ip-adres en dat zijn toch wel enige miljoenen personen...
deze shop is aleen voor bedrijfen die dus een normaal ip hebben !!
winkelwagen en wachtrij zijn 2 verschilende tabellen
ik wil iets maken dat je ze kan verplaatsen of copyeeren naar tabel wachtrij
ik heb nu dit gevonden
<?
$db = pg_connect("dbname=winkelwagen") or die("Could not connect");
$rows = pg_copy_to($db, waitlist);
pg_query($db, "DELETE FROM winkelwagen WHERE ip = $addr");
pg_copy_from($db, winkelwagen, $row "WHERE ip = $addr");
?>
maar in pg_copy_from geeft die een fout
WHERE moet op een ander manier maar hoe wie weet dat !!
Warning: pg_connect(): Unable to connect to PostgreSQL server: invalid connection option "site_nl_-_winkel" in /var/www/html/ttest/winkel/indexmail.php on line 176
Could not connect
deze shop is aleen voor bedrijfen die dus een normaal ip hebben !!
En wat vind jij een 'normaal' ip-adres? Juist bij bedrijven vind je proxy-servers e.d. en heb je dus een probleem wanneer je op ip-adres gaat selecteren. Voorbeeldje:
1 bedrijf met meerdere medewerkers:
- Medewerker 1 gaat een winkelwagentje vullen
- Medewerker 2 gaat een winkelwagentje vullen
- Medewerker 1 gaat alles wat met 'zijn' ip-adres (= ip-adres van het hele bedrijf!) is aangemaakt naar de wachtrij verplaatsen. Dus inclusief het winkelwagentje van medewerker 2...
- Medewerker 2 ziet dat zijn winkelwagentje leeg is, denkt dat er iets is fout gegaan en gaat zijn winkelwagentje opnieuw vullen.
Gevolg: Goederen worden dubbel besteld.
Kortom, een hele berg problemen. Nogmaals, je hebt in dit geval helemaal niets, maar dan ook niets, aan het ip-adres. Het is gewoon geen uniek gegeven. Vergeet deze opzet. Ga gebruik maken van sessies om per browser de klant te kunnen indentificeren. Of laat de klant eerst inloggen om zo vast te stellen welke user er aan het bestellen is.
nee dat klopt niet!
als je op ip doet is elke ip op elke pc hetzelfde dus ook de vieuw_winkel.php
bij elke pc staat het zelfde in de winkelwagen dus kan je nooit dubele orders krijgen !
ja klopt maar je bent wel dom als je mensen dubbel laat bestellen meestal besteld 1 persoon in het bedrijf de dingen en doet dat op 1 pc en als ze het op een andere doen zien ze het toch ook wel als er niets in de winkelwagen staat ;)
ja klopt maar je bent wel dom als je mensen dubbel laat bestellen meestal besteld 1 persoon in het bedrijf de dingen en doet dat op 1 pc en als ze het op een andere doen zien ze het toch ook wel als er niets in de winkelwagen staat ;)[/quote]
Je bent ook best wel dom als je nou nog niet luistert naar Frank en Jan
meestal besteld 1 persoon in het bedrijf de dingen
Yeah, right... Bij een eenmanszaak kon je nog wel eens gelijk hebben, maar zodra er meerdere mensen in dienst zijn, wordt er ook door meerdere mensen besteld.
Maar goed, ik hoop dat je nog eens gaat inzien dat een ip-adres niet uniek is en dat je daar gewoon niet op kunt vertrouwen.
Daarnaast is het niet eens nodig om het ip-adres te gebruiken. Gebruik gewoon een sessie waar je de hele winkelwagen ingooit. Zodra men wil afrekenen, zet je de hele boel in de database en klaar ben je. En sessies werken per browser, bestellingen kunnen dus nooit door elkaar lopen.
Hier een voorbeeldje:
<?php
/**
* Add a product in the session.
*
* @access: public
* @param int $id
* @param int $aantal
* @returns booleaan
*/
function addCustomerProduct($id, $aantal)
{
if (is_numeric($id) && is_numeric($aantal)) {
if (!empty($_SESSION['cart'][$id])) {
$_SESSION['cart'][$id]['aantal'] += $aantal;
} else {
$_SESSION['cart'][$id]['aantal'] = $aantal;
}
return true;
}
return false;
}
/**
* Dell a product by specified id
*
* @access public
* @param int $id
* @returns booleaan
*/
function dellCustomerProduct($id)
{
if (!is_numeric($id)) return false;
if (!empty($_SESSION['cart'][$id])) {
if ($_SESSION['cart'][$id]['aantal'] >= 2) {
$_SESSION['cart'][$id]['aantal'] = $_SESSION['cart'][$id]['aantal']-1;
} else {
unset($_SESSION['cart'][$id]);
}
return true;
}
return false;
}
/**
* Delete the complete cart session
*
* @access: public
* @returns boolean
*/
function dellCart()
{
if (!empty($_SESSION['cart'])) {
unset($_SESSION['cart']);
return true;
}
return false;
}
?>
(met dank aan www.phpfreakz.nl )