Hoi,

Ik ben bezig met een webwinkel om te oefenen hiermee (het is een wijnwinkel) en nu zit ik vast. Ik heb zo ver: webwinkel.php staan alle wijnen en kunnen je bestellen, dan ga je naar winkelwagen.php waarop je tot dusver ingevoerde aantallen staan.

Ik heb via sessions de aantal en artikelnummer opgevraagd, en deze toont hij ook goed, maar nu wil ik via het artikelnummer alle andere gegevens ophalen uit de database, maar dat krijg ik niet werkend. Ik heb de meeste code wel al, en al zoveel geprobeerd maar het lukt niet.

Hier een afbeelding van het resultaat: http://i43.tinypic.com/2qira7l.jpg


<?php
session_start();
include ('connection.php');
$artikelnummer=$_POST['artikelnummer'];
$aantal=$_POST['aantal'];
$_SESSION['winkelwagen'][$artikelnummer]=$aantal;

if (isset($_POST['verderwinkelen']))
{
header ("Location: wijnwinkel.php");
exit;
}
if (isset($_POST['plaatsbestelling']))
{
header ("Location: bestelling.php");
exit;
} 
?>

<html>

<head>
	<title>Wijnwinkel - winkelwagen</title>
</head>

<body>

<h1>Inhoud winkelwagen</h1>
<hr />

<?php
	echo '<table border="1">';
	echo '<tr>';
	echo '<td>Wijn</td>';
	echo '<td>aantal</td>';
	echo '<td>Prijs eenheid</td>';
	echo '<td>Totaal</td>';
	echo '</tr>';
	
foreach ($_SESSION['winkelwagen'] as $artikelnummer => $aantal)
{
	$keuze = mysql_query('SELECT omschrijving, eenheid, verkoopprijs FROM artikel WHERE artikelnummer=' . $artikelnummer . '');
	echo '<tr>';
	echo '<td> bla</td>';
	echo '<td>' . $aantal . '</td>';
	echo '<td>de prijs</td>';
	echo '<td>het totaal</td>';
	echo '<td><a href="">verwijder</a></td>';
	echo '</tr>';
}
	echo '</table>'; 

	echo '<form method="post" action="">';
	echo '<input type="submit" name="verderwinkelen" value="verder winkelen" />';
	echo '<input type="submit" name="plaatsbestelling" value="bestellen plaatsen" />';
	echo '</form>';

?>
</body>

</html>


ik weet dat je normaal een ($row = mysql_fetch_array($result) gebruikt, maar dat krijg ik hier niet bij en andere manier lukken ook niet. Ik weet dat er nog een andere fout in zit (dat hij een lege regel ertussen pakt) maar dat is niet het voornaamste, ik wil eerst deze grote fout eruit halen. Mocht iemand het antwoord op die tweede weten meldt het dan want dat is altijd wel zo handig!

Wat doe ik fout?
Ik had zoiets als aangegeven met =number_format($row['verkoopprijs'],2,",",".") zodat hij ook twee decimalen laat zien dus 12,80 ipv 12,8 maar ik merk nu dat als ik dat er bij zet hij niet meer goed rekend, als ik dat weg haal doet hij dat wel.

Ik heb nu van de prijs een varchar gemaakt net zoals de eenheidsprijs, en nu rekend hij het wel goed en laat het goed zien.

Nu is het enige nadeel dus nog dat hij een ount laat zien ipv een komma en geen 2 decimalen meegeeft. Voorbeeldje:
Wijn Aantal Prijs
eenheid Totaal
Dona Eloda(2002) 4 €3.45 €13.8 Verwijder
Principe Tinto(2003) 6 €3.95 €23.7 Verwijder

Hoe krijg ik dat goed? Met die str_replace? Ik zal dat vast gaan proberen :)
<?php
$number = 34.5;
// geeft 34,50
echo number_format($number, 2, ',', '.');

$number = 12334.5;
// geeft 12.334,50
echo number_format($number, 2, ',', '.');
?>
Zoals ik in mijn eerdere post al zei:
"Ik had zoiets als aangegeven met =number_format($row['verkoopprijs'],2,",",".") zodat hij ook twee decimalen laat zien dus 12,80 ipv 12,8 maar ik merk nu dat als ik dat er bij zet hij niet meer goed rekent, als ik dat weg haal doet hij dat wel."
Dit stukje heeft weinig met rekenen te maken. Het is puur om een getal in het juiste format neer te zetten.

Jij geeft aan dat de prijs in een varchar zit. Tja, dat blijft tekst en daarmee rekenen gaat niet altijd goed. Gebruik het juiste TYPE.
Ja, maar als je een paar post terug kijk dan zie je dat ik daar zeg dat decimal EN int niet werken en ze ipv een 3.45 alleen een 3 laten en ik daardoor wel een varchar moet gebruiken.
DECIMAL(15, 2) moet toch gewoon werken.

Edit: Je moet natuurlijk bij de INSERT ook het juiste format gebruiken en dus geen komma,s.
Dankjewel voor het voorbeeld want daardoor snapte ik het pas. Ik wist niet (nooit geleerd/nog niet gezien) dat in je database als die DECIMAL 3,0 zegt dat dat eerste het aantal voor de komma is en het tweede het aantal na de komma. Daardoor kwam ik ook steeds in de knoei. Heel erg bedankt daarvoor :D

Het volgende van dat number format deed ik ook steeds fout, in mijn boek staat bijvoorbeeld

<?php
$voorbeeld=number_format($voorbeeld, 2, ',', '.') ;
?>

maar ook weer door jou voorbeeld zag ik dat ik dat fout deed, en nu werkt alles zoals het hoort te werken! :D Dankje wel voor je hulp ^^

Ik ben inmiddels veel verder gekomen met een inlogsysteem en een registersysteem (ben ik nu mee bezig) en het bestelformulier. Daar zit ik met wat fouten nog maar daar ben ik nu ook weer mee bezig en dat ga ik eerst zelf uit zoeken en als het echt niet lukt dan kom ik wel weer hier :)

Nog een keer, bedankt voor alles.

Reageren