Beste allemaal,

Het volgende probleem doet zich voor:
Ik ben bezig een webshop te maken, dit gaat redelijk. Het lukt mij om een produkt in een winkelwagen te krijgen maar het blijft bij 1 produkt.
De funktie die ik gemaakt heb is deze.
<?php
function ShowWinkelwagen()
{
echo "Inhoud van de winkelwagen<br>";
$winkelwagen = $_SESSION["winkelwagen"];
if (count($winkelwagen)>0)
{
echo "<table width= '210'>";
echo "<tr><td>Item</td><td>Type</td><td>€</td><td></td></tr>";
for ($i=0;$i<count($winkelwagen);$i++)
$sql=mysql_query("SELECT * FROM artikel WHERE artikelnummer='".$_GET['bestel']."'");
$record=mysql_fetch_array($sql);
{
echo "<tr><td>$i</td><td width=140>$record[3]</td><td>$record[6]</td><td><a href ='lijst.php?verwijder=?".$i."'>Verwijder</a></td></tr>";

}
echo "</table>";
}
}
?>
Met he volgende neem ik het artikelnummer mee.
<a href='lijst.php?bestel=".$record[0]."'>Bestellen</a>

Ik heb van alles geprobeerd maar ik krijg niet de juiste oplossing: dat er verschillende artikelen in komen.

De tutorial van Elwin Opzet webwinkel heeft mij helaas niet verder geholpen.

Wie kan mij helpen dit probleem uit de wereld te helpen.

Alvast bedankt,

Martijn
Kun je niet even (een stuk van) het script van lijst.php posten?
Zo dat is snel ;-)

<?php
// Start deze pagina binnen de sessie
session_start();
// Controleer of de winkelwagen reeds bestaat in deze session
if(!isSet($_SESSION["winkelwagen"]))
{
// Bestaat winkelwagen niet dan nu aanmaken
$winkelwagen = array();
$_SESSION["winkelwagen"] = $winkelwagen;
}
?>



<?php

include "header.php";
require "functions_lijst.php";
//require "functions_login.php";

CheckBestel();
Checkverwijder();
ShowProducts ();
ShowWinkelwagen();

include "footer.php";
?>

Maar ik denk dat je dit wilt hebben:
<?php
function ShowProducts()
{
$Subgroepsoort = $_GET['id']; // Neemt Id mee om in de query de juiste uitlezing te kunnen doen

$produkten = mysql_query("select * FROM artikel WHERE (Subgroepsoort = '$Subgroepsoort')");
echo "<table border=1 width = '640'>";
echo "<tr><td>Foto:</td><td>Omschrijving:</td><td><img src='plaatjes/van.gif'</td><td><img src='plaatjes/voor.gif'</td><td>Aantal:</td><td>Bestellen</td></tr>";
while ($record=mysql_fetch_row($produkten))
{
echo"<tr><td><img src='plaatjes/".$record[7]." 'width='100'></td><td><b>".$record[3]."</b><br>".$record[4]."</td><td>".number_format($record[5],2, ',', '')."</td><td> ".number_format($record[6],2, ',', '')."</td><td><input type ='text' name='hoeveelheid' size='2' maxlength='2' value = '1'</td><td><a href='lijst.php?bestel=".$record[0]."'>Bestellen</a></td></tr>" ;
}
echo "</table>";
}
?>

Ik ben nog niet zo'n ervaren php'er, als ik me al phper mag noemen, maar wat wil je met dat stukje code als ik vragen mag?

Groeten Martijn

Nog niet zo'n ervare php'er, en al wel een webshop schrijven?

Begin eerst is wat kleiner, want ik verwacht niet dat je dit zelf geschreven hebt als beginnende php'er....

Nou ja, onervaren komt toch wel weer ergens uit, wat wil je namelijk met dit bereiken:

<?php
$winkelwagen = array();
$_SESSION["winkelwagen"] = $winkelwagen;
?>
Ik heb voor de vakantie een cursus gevolgd en de eindopdracht was/is voor mij een webshop, maar het een en ander is nog al weggezakt. Mbv het cursus materiaal heb ik deze code zelf kunnen produceren :-))
Maar ik heb dus geen flauw idee waarom ik maar 1 artikel er in krijg. Het maak niet uit welke als ik een 2e artikel selecteer dan komt die er in te staan

De code die jij weergeeft is volgens mij ervoor dat je er een array mee maakt, zodat je daar de inhoud van je winkelwagen in kan zetten.

Maar verbeter me gerust als ik het verkeerd heb.

Of ik kijk niet goed of.... maar ik zie nergens hoe/waar je iets in de session/winkelwagen zet.

Verder even een opmerking:
<a href ='lijst.php?verwijder=?".$i."'>Verwijder</a>
Die tweede vraagteken hoort er niet, moet weg.
@SanThe: Die staat toch boven aan? Maar heb hem hier nog een keer staan want ik heb hem wat veranderd:
<?php
function ShowWinkelwagen()
{
$winkelwagen = $_SESSION["winkelwagen"] ;
echo "Inhoud van de winkelwagen<br>";
if (count($winkelwagen)>0)
{
echo "<table width= '210'>";
echo "<tr><td>Item</td><td>Type</td><td>€</td><td></td></tr>";
$totaal=0;
for ($i=0;$i<count($winkelwagen);$i++)
{

$sql=mysql_query("SELECT * FROM artikel WHERE artikelnummer='".$_GET['bestel']."'");
$record=mysql_fetch_array($sql);

echo "<tr><td>$i</td><td width=140>$record[3]</td><td>$record[6]</td><td><a href ='lijst.php?verwijder=".$i."'>Verwijder</a></td></tr>";
//echo "Item $i:".$_SESSION["winkelwagen"]." <a href ='lijst.php?verwijder=".$i."'>Verwijder</a><br>";


} echo "</table>";
}
else
{
echo "Op het moment zit er niets in uw winkelwagen";
}

}
?>
2e ? heb ik er uitgehaald.

De code van de funktie winkelwagen is zodanig veranderd dat ik nu niet 1 produkt in mijn winkelwagen krijg maar meerdere.
Dat is de bedoeling toch zul je denken, maar de meerdere produkten nemen allemaal de waarde van het laatst bestelde artikel over. Ik krijg dus een lijst met tig x hetzelfde artikel.

Als er nog iemand genegen is om te vertellen waar het aan ligt en wat ik zou kunnen doen om het op te lossen dan verneem ik dat graag.

Groeten Martijn
Wat SanThe al zei... Wat zet je in $_SESSION['winkelwagen']? Je doet wel $winkelwagen, maar hoe wordt die gevuld? Als je het via een post of get formulier doet moet je:

$_SESSION['winkelwagen']=$_POST['winkelwagen'];

of

$_SESSION['winkelwagen']=$_GET['winkelwagen'];
Ik denk dat ik je snap.
Ik heb in de funktie ShowProducts het volgende staan:

a href='lijst.php?bestel=".$record[0]."'>Bestellen</a>

en deze laat ik in de query terugkomen dmv :
$sql=mysql_query("SELECT * FROM artikel WHERE artikelnummer='".$_GET['bestel']."'");

Als ik het goed heb moet ik dus van dit:
$winkelwagen = $_SESSION["winkelwagen"] ;
dit maken:
$_SESSION["winkelwagen"] = $_GET['bestel'];

of moet ik in de query dan nog wat veranderen?

Alvast weer bedankt

Ik snap je nog steeds niet goed.

Ik neem aan dat je in ShowWinkelwagen() alles wilt laten zien wat er in de winkelwagen zit. Maar waar/hoe stop je iets in de winkelwagen? Dat zie ik niet en dat doe je, lijkt mij, ook niet op de pagina waar je alles laat zien uit de winkelwagen, maar ergens in de winkel zelf. Dus waar je alle koopwaar laat zien.
Inderdaad in de winkelwagen wordt getoond wat ik er in stop.

Op het moment gebeurd dat ook. Ik krijg netjes item 0 item1 item2 enz.
Wat er gebeurd is dat de waarde van item0123 de zelfde inhoud krijgt als het laatst bestelde item dus ik krijg dan x-aantal keer hetzelfde artikel.

Het vullen van de winkelwagen doe ik in de funktie ShowProducts:
<?php
echo"<tr><td><img src='plaatjes/".$record[7]." 'width='100'></td><td><b>".$record[3]."</b><br>".$record[4]."</td><td>".number_format($record[5],2, ',', '')."</td><td> ".number_format($record[6],2, ',', '')."</td><td><input type ='text' name='hoeveelheid' size='2' maxlength='2' value = '1'</td><td><a href='lijst.php?bestel=".$record[0]."'>Bestellen</a></td></tr>" ;
?>
en dan dit gedeelte :
a href='lijst.php?bestel=".$record[0]."'>Bestellen</a>

record[0] komt overeen met het artikelnummer.
Dit artikel komt netjes mee en komt ook daadwerkelijk in het winkelwagentje maar veranderd dus in de waarde van het eerstvolgende item wat je bestel.

Ik krijg dus na 4x bestellen zoiets:
Item Type €
0 Alhambra 5P 614 Verwijder
1 Alhambra 5P 614 Verwijder
2 Alhambra 5P 614 Verwijder
3 Alhambra 5P 614 Verwijder

Hopelijk snap je wat ik bedoel, ik weet nl niet hoe ik het anders moet uitleggen.

Groeten Martijn

Reageren