Gå til innhold

Databasebehandling & sessions - handlekurv


Anbefalte innlegg

Vet ikke helt hvor lett det blir å forklare problemet.. men uansett, dette er funksjonen som viser hvordan man legger til i handlekurven, og den som viser den:

 

 

Edit: Helvete, hvordan poster man php-kildekode her inne egentlig?

 

function leggTilKurv()
{
$handlekurv = $_SESSION['handlekurv'];
if (!$handlekurv) 
{
	return '<p>Du har ingen gjenstander i <a href="handlekurv.php"> handlekurven</a></p>';
} else {
	//Parser handlekurv session-variabelen
	$varer = explode(',',$handlekurv);
	$s = (count($varer) > 1) ? 's':'';
	return '<p>Du har <strong> '.count($varer). '</strong> ting i <a href="handlekurv.php">handlekurven</a></p>';
}
}

 

 

Og koden som viser handlekurven:

 


function visHandlekurv() 
{
global $db;
   $total = 0;
$handlekurv = $_SESSION['handlekurv'];
if ($handlekurv) {
	$varer = explode(',',$handlekurv);
	$innhold = array();
	foreach ($varer as $vare) {
		$innhold[$vare] = (isset($innhold[$vare])) ? $innhold[$vare] + 1 : 1;
	}
	$utskrift[] = '<form action="handlekurv.php?action=oppdater" method="post" id="handlekurv">';
	$utskrift[] = '<table>';
	$utskrift[] ='<tr><th></th><th>Tittel</th><th>Pris på vare</th><th>Antall</th><th>Totalpris</th>';
	foreach ($innhold as $id=>$qty) {
		$sql = 'SELECT * FROM handlekurv WHERE ID = '.$id;
		$result = $db->query($sql);
		$row = $result->fetch();
		extract($row);
		$utskrift[] = '<tr>';
		$utskrift[] = '<td><a href="handlekurv.php?action=slett&id='.$id.'" class="r">Fjern</a></td>';
		$utskrift[] = '<td><i>'.$Vare.' av '.$Fornavn.'</i></td>';
		$utskrift[] = '<td>'.$Pris.' kr</td>';
		$utskrift[] = '<td><input type="text" name="qty'.$id.'" value="'.$qty.'" size="1" maxlength="3" align=rigth/></td>';
		$utskrift[] = '<td> '.($Pris * $qty).' kr</td>';
		$total += $Pris * $qty;
		$utskrift[] = '</tr>';
	}
	$utskrift[] = '</table>';
	$utskrift[] = '<div><p>Totalpris: <strong>'.$total.'</strong> kr</p>';
	$utskrift[] = '<button type="submit">Oppdater vogn</button>';
	$utskrift[] = '</form></div>';
	$utskrift[] = '<form action="visvarer.php"?action=visvarer" method="post" id="handlekurv">';
	$utskrift[] = '<button type ="submit">Fullfør handel</button>';
} else {
	$utskrift[] = '<p>Handlekurven din er tom.</p>';
}
return join('',$utskrift);
}

 

 

Problemet mitt er da... jeg skal nå håndtere de verdiene som er lagt til i handlekurven for å så laste opp de verdiene i en egen tabell. Hva vil her være den smarteste måten å løse det på? Session-variabelen her er jo kun et ID-tall... har i databasetabellen registrert bøkene som ligger der med et ID-nummer, for å skille mellom de forskjellige. Så hvis jeg typ har lagt til 2 forskjellige bøker, blir da

 print_r($_SESSSION);

lik 1,2 hvis jeg hadde lagt til tre av samme bok, og en av en annen ville jeg da fått 1,1,1,2 f.eks.

 

Noen som har noen ideer til hvordan jeg kan gå fram her?

Endret av Acherontic
Lenke til kommentar
Videoannonse
Annonse

Bruk 'insert' når du skal sette inn rader i en sql-database (hvis det er det du bruker).

 

I utgangspunktet er det litt kålete å gjenta samme varenummer flere ganger, det vanlige i nettbutikker er vel å angi antallet pr. vare slik at du får tupler av (varenr,antall) sesjonen. Handlekurvtabellen må sef. reflektere dette.

 

Pass også på å få transaksjonshåndteringen riktig, slik at hele bestillingen blir rullet tilbake, og ikke bare den ene varen som evt. forårsaket krasjen.

Lenke til kommentar

 Har fikset en løsning som duger foreløpig nå... Bare kopierte vishandlevogn-funksjonen og kalte den registrer, for å så overføre sesjonsverdiene inn i en sql-tabell... deriblant for antall av varer osv.

Kanskje litt klønete foreløpig, men har null erfaring med strukturering av tabeller fra før. 

 

 

 

 

Vil også legge inn en kunde-ID så fort jeg får samkjørt med resten av koden som skal inkluderes, hvor man må logge inn som kunde for å få lagt til varer i handlekurven. 

 

 

 

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...