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.
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!
<?php
foreach ($_SESSION['winkelwagen'] as $artikelnummer => $aantal)
{
$keuze = mysql_query('SELECT omschrijving, eenheid, verkoopprijs FROM artikel WHERE artikelnummer=' . $artikelnummer . '');
if(!$keuze)
{
// query fout
}
$row = mysql_fetch_accoc($keuze);
echo '<tr>';
echo '<td> bla</td>';
echo '<td>' . $aantal . '</td>';
echo '<td>' . $row['prijs'] . '</td>';
echo '<td>' . ($aantal * $row['prijs']) . '</td>';
echo '<td><a href="">verwijder</a></td>';
echo '</tr>';
}
?>
Verder moet je regel 4 en 5 wijzigen zodat je kijkt of ze wel bestaan en of de waarde correct is alvorens je het in een session zet.
Zet dit bovenin je script.
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
// rest
?>
Edit: De a href zal je ook iets moeten meegeven want nu weet je niet wat er verwijderd moet worden.
Nog een correctie op SanThe's script: Je moet natuurlijk alleen gaan fetchen als er geen fout is, anders krijg je alsnog foutmeldingen. Dus het fetchen en het verwerken van de gefetchte gegevens moet je in een else blokje zetten
<?php
$query = "iets";
$result = mysql_query($query);
if(!$result) {
trigger_error(mysql_error());
}
else {
// gaan fetchen en dergelijke
{
?>
Ik zie nu dat hij het doet als ik mysql_fetch_array gebruik dus dat is al een hele opluchting, maar omdat SanThe dat mysql_fetch_accoc gebruikt zet ik dat er natuurlijk in, maar dan geeft hij deze fout: Fatal error: Call to undefined function mysql_fetch_accoc() in C:\Program Files\wamp\www\webwinkel\winkelwagen.php on line 51
en ik krijg hem niet weg :(
en als ik dan mysql_fetch_array gebruik zie ik de namen die ik besteld heb etc wel, maar dan geeft hij deze fout: Notice: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 in C:\Program Files\wamp\www\webwinkel\winkelwagen.php on line 48
en die zie ik ook niet..
Er zit nu toch niks meer fout? want ik heb alles gebruikt zoals jullie zeiden :)
Oke, maakt niet uit, iedereen maakt wel eens een foutje ^^
Nu doet hij het, maar geeft hij dit als foutmelding: Notice: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 in C:\Program Files\wamp\www\webwinkel\winkelwagen.php on line 46
Als ik dan datgene op lijn 46 (trigger_error(mysql_error());) weghaal, dan geeft hij geen foutmelding, dus wat is er fout aan?
----
Nog een klein andere vraagje, nu ik toch bezig ben: ik haal nu de verkoopprijs op (deze fout geeft hij trouwens ook in de winkel zelf al) dan laat hij 3 zien, terwijl in mijn database de prijs 3,75 is. Hij staat in de database als een int(3). Hoe kan dit? Hij moet dan toch gewoon de drie cijfers laten zien?
Als ik die int verander in decimal pakt hij dat nog niet, wat ik net vergeten ben te zeggen, ik krijg steeds als ik van die 3 dan een 3,75 wil maken dan zegt hij dit: 0 rij(en) bijgewerkt.
Note: #1265 Data truncated for column 'verkoopprijs' at row 1
Dit geldt zowel voor als ik het met decimal als met int doe.
Mijn eenheidsprijs heb ik in varchar, maar ik dacht dat je daarmee niet kunt rekenen ofwel?