Anders Moen Skrevet 13. september 2007 Del Skrevet 13. september 2007 Jobber med en nettbutikk, og da blir allerede produktene man legger i handlekurven lagt i en tabell kalt tempcart hvor det blir lagret en unik id, ip og produktnavnet/tittelen Hvert produkt en person har får hver sin rad.. Når man går til kassa da og bekrefter bestillingen, så vil jeg at alle produktene fra den ip'en i tempcart blir flytta til tabellen ordre. Da vil jeg helst at alle produktene kommer i et felt Men hvordan skal jeg få til det? Har prøvd og prøvd, men får ikke til =/ (Si ifra om dere ikke skjønner hva i all verden jeg snakker om hehe) Lenke til kommentar
Gjest Slettet+142 Skrevet 14. september 2007 Del Skrevet 14. september 2007 Vel det er jo du som har orden på hvordan systemet ditt funker (antar jeg ) da. - Jeg vet ikke hvordan det ser ut. Men jeg kunne tenke meg at du vil måtte hente ut id og antall for alle produktene ifra tempcart som tilhører den ipen med php, deretter legge iden og antall inn i den andre databasen tilpasset ditt format. -- Hent ut tempcart, id og antall- Loop resultat fra query og fyr id inn som key, mens antall inn som value i et array. Serialize array og sett inn i ordre sammen med annen info om brukeren. Lenke til kommentar
Anders Moen Skrevet 14. september 2007 Forfatter Del Skrevet 14. september 2007 Men jeg kunne tenke meg at du vil måtte hente ut id og antall for alle produktene ifra tempcart som tilhører den ipen med php, deretter legge iden og antall inn i den andre databasen tilpasset ditt format. Ja, der er problemet...får ikke det til Men jeg la til noen felter til, og så tok jeg slik at hvis "bestilt" = 0 så er den bare i handlekurven, og hvis den er 1 så betyr det at produktet er bestilt så.. Men jeg skal prøve litt mer om jeg får til å få flytta det over i kveld Lenke til kommentar
Gjest Slettet+142 Skrevet 14. september 2007 Del Skrevet 14. september 2007 Databasestruktur er viktig når man skal lage et system som benytter seg av databaser, databasebehandlig og lignende.. Så det er vel viktig at man har kanskje flere tabeller for en handlekurv. En til å holde forbindelsene, som iden til produktet, ipen og evt. bruker. Neste database inneholder varene, med unik id, id til handlekurvrelasjonstabellen som jeg nettopp nevnte og vareid Lenke til kommentar
Ernie Skrevet 14. september 2007 Del Skrevet 14. september 2007 INSERT ... SELECT kan være noe å se på. Lenke til kommentar
Xqtor Skrevet 21. september 2007 Del Skrevet 21. september 2007 Kort innpå: Kan det ikke være litt risikabelt å bruke IP-adresse for å hente ut produktene fra tabellen tempcart? Hva hvis to brukere fra samme nettverk gjør en bestilling samtidig, og disse sitter bak en brannmur? Da vil de mest sannsynlig ha den samme IP-adressen? Vil det ikke være bedre å identifisere hver kunde med noe (mer) unikt? Lenke til kommentar
Gjest Slettet+142 Skrevet 21. september 2007 Del Skrevet 21. september 2007 Ikke gjenkjenn en pc med IP. Bruk gjerne ip + cookies, eller ip + sessionid Lenke til kommentar
Anders Moen Skrevet 21. september 2007 Forfatter Del Skrevet 21. september 2007 Ja, jeg visste egentlig ikke åssen jeg skulle gjøre dette selv i starten. Begynte egentlig med sessions, men jeg fikk ikke helt til..men jeg spurte heller aldri om hjelp da =/ Og så hvis man da var logget inn, så ble det lagt til i databasen med brukernavn. Så skulle det hentes ut hvor brukernavn = session_brukernavn slik som jeg tror de fleste nettbutikker har? Men i stedet for, la jeg til et felt i tabellen kalt bestilt og så produkter som ble lagt til i handlekurven fikk status 0 i bestilt og så etter at den er bestilt får de 1 og når de er sendt/mottatt av nettbutikk-eieren får den status 2. Litt kjedelig å bekrefte hvert produkt sånn, men får heller oppdatere sida deres når jeg finner ut hvordan det kan gjøres på en bedre måte Lenke til kommentar
Stian Jacobsen Skrevet 22. september 2007 Del Skrevet 22. september 2007 (endret) ehhh... hva med å bare kjøre en løkke?!!?!?!?! while($r = mysql_fetch_array(mysql_query("SELECT produkt FROM temp WHERE unikid='".$hentid."'")) { $insert = mysql_query("INSERT INTO final (produkt,unikid) VALUES ('".$r['produkt']."', '".$hentid."')"); if($insert) { echo "Oppdatert"; } else { echo "Feil..."; } } Men hvorfor bruker du databasen til å midlertidig lagre noe..? Dette kan du bruke en array til... $_SESSION['unik_id'] = "id til bruker"; $_SESSION['produkt'][] = "Ferrari"; $_SESSION['produkt'][] = "Lada"; Produkt -> 0 - Ferrari 1 - Lada Når "kunden" er ferdig å trykker "kjøp" (or whatever) legger du bare dette inn i en database og så sletter du det fra session variabelen med unset($_SESSION['produkt']) ------ Dette har jeg sett mange ganger... folk som ønsker å lage en nettbutikk løsning, men de tenket så stort og tungvindt... Jeg sier som Rema1000 (Skjult reklame??) Det enkleste er ofte det beste! Endret 22. september 2007 av MrNeeon Lenke til kommentar
Anders Moen Skrevet 22. september 2007 Forfatter Del Skrevet 22. september 2007 ehhh... hva med å bare kjøre en løkke?!!?!?!?! while($r = mysql_fetch_array(mysql_query("SELECT produkt FROM temp WHERE unikid='".$hentid."'")) { $insert = mysql_query("INSERT INTO final (produkt,unikid) VALUES ('".$r['produkt']."', '".$hentid."')"); if($insert) { echo "Oppdatert"; } else { echo "Feil..."; } } Det var dette jeg hadde prøvd først. Men jeg vil at alle produktene man bestiller kommer i samme tekstfelt, og ikke over flere rader. Derfor ga jeg opp det der. Men hvorfor bruker du databasen til å midlertidig lagre noe..? Dette kan du bruke en array til... $_SESSION['unik_id'] = "id til bruker"; $_SESSION['produkt'][] = "Ferrari"; $_SESSION['produkt'][] = "Lada"; Produkt -> 0 - Ferrari 1 - Lada Jeg prøvde først med sessions, men fikk ikke helt til. Fikk lagt til et produkt, og så når man la til neste så ble det første borte bare Lenke til kommentar
Stian Jacobsen Skrevet 22. september 2007 Del Skrevet 22. september 2007 (endret) Om du legger til et produkt på denne måten: $_SESSION['produkt'][] = $produkt_id; så vil arrayen fylle seg opp.. men når jeg tenker meg om, så må du nokk gjøre det slik $_SESSION['bruker_id']['produkt'][] = $produkt_id; slik at du ungår at alle brukere får samme handleliste... Bare å gjøre det slik når en bruker trykker "kjøp" $midlertidig_id = 223; if($session_key === session_id()) { $_SESSION[$midlertidig_id]['produkt'][] = $produkt_id; // Om du legger dette i en separat fil (f.eks kjop.php) // Så kan du eventuellt redirect tilbake til produktet.. header("Location: index.php?produkt=$produkt_id"); } Når brukeren er ferdig handlet og har fått godkjent ordren, så fjerner du alle produktene fra arrayen if($session_key === session_id()) { unset($_SESSION[$midlertidig_id]['produkt']); } Endret 22. september 2007 av MrNeeon Lenke til kommentar
Gjest Slettet+142 Skrevet 22. september 2007 Del Skrevet 22. september 2007 Jeg prøvde først med sessions, men fikk ikke helt til. Fikk lagt til et produkt, og så når man la til neste så ble det første borte bare 9548369[/snapback] Trenger jeg spørre om du hadde session_start(); i begynnesen av filen? Lenke til kommentar
Anders Moen Skrevet 23. september 2007 Forfatter Del Skrevet 23. september 2007 Takk, MrNeeon. Skal prøve meg litt fram på det der når jeg får litt tid mariyo: Ja, jeg hadde det ja... Produktene ble ikke borte fra handlekurven etter et klikk, men etter at man la til et annet produkt. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå