[php] site met winkelwagen.

Pagina: 1
Acties:
  • 201 views sinds 30-01-2008

  • L01
  • Registratie: December 2003
  • Laatst online: 15:48
Ik ben bezig met een site waarop gebruik wordt gemaakt van een winkelwagen.
Op de pagina met de artikelen staat een knop zodat het ID met een url parameter wordt doorgegeven aan de winkelwagen.

Ik het al voor elkaar gekregen dat de ID's worden opgeslagen in een sessie:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php 
session_start(); 

if (empty($_GET["RecordID"])) 
{ $tekst = "het recordid is leeg"; } //controle of $_GET["RecordID"] leeg is 

    if (!empty($_GET["RecordID"])) 
    { 
        
         
        $_SESSION["mandje"][] = $_GET["RecordID"]; 
        $_SESSION["mandje"]=array_unique($_SESSION["mandje"]);
        $tekst = 'Het toevoegen aan het winkelwagentje is gelukt!' ;    
    } 


?>


met het volgende kan ik de ID's op de pagina weergegeven:

PHP:
1
2
3
4
5
6
7
8
 <? 
$aantalids = count($_SESSION["mandje"]) - 1; 
sort($_SESSION["mandje"]) ;
for($i=0;$i<=$aantalids;$i++)
{ 
echo $_SESSION["mandje"][$i].'<br />'; 
} 
?> 


Maar nu zit ik vast met het weergegeven van de gegevens die bij het ID horen.
Hoe selecteer ik uit de database de goede gegevens en hoe geef ik die weer op de pagina?

edit: ik ben [php] vergeten in de topic titel, kan een mod dit aanpassen?

[ Voor 13% gewijzigd door L01 op 24-04-2005 16:10 ]

Hi, I'm a signature virus. Put me in your signature to help me spread.


  • vogeltje
  • Registratie: December 2001
  • Laatst online: 10-08-2025
Ik neem aan dat die ID's corresponderen met de PK's in de tabel? Wat is dan het probleem van het opvragen van die informatie. Ik bedoel, als je een product_id aan je session (winkelwagen whatever) toevoegt, dan kan je toch eenvoudig de product-gegevens opvragen?

[ Voor 5% gewijzigd door vogeltje op 24-04-2005 17:01 ]

binnenkort een hele dikke casemod :P


  • L01
  • Registratie: December 2003
  • Laatst online: 15:48
ok, als ik dus 3 artikelen in mijn sessie heb zitten moet ik dat eruit halen met een query:

PHP:
1
$result= mysql_query("SELECT * FROM raedt_artikelen WHERE ID = '".$_SESSION['mandje']."'");


en dan probeer ik het uit te lezen met:

PHP:
1
2
3
4
5
6
7
<?php 
while($row = mysql_fetch_array($result, MYSQL_ASSOC )) 
{ 
   echo($row["ID"] ."<br>") ;    
} 
mysql_free_result($result); 
?> 


Maar dan is het scherm leeg...

Je zegt dat het eenvoudig is, zou je me kunnen laten zien doormiddel van een voorbeeld hoe eenvoudig het is?

[ Voor 21% gewijzigd door L01 op 24-04-2005 17:08 ]

Hi, I'm a signature virus. Put me in your signature to help me spread.


  • Ramon
  • Registratie: Juli 2000
  • Laatst online: 21:13
Ik heb het alsvolgt gedaan:

Een tabel genaamd winkelwagentje, met een winkelwagentje_id
Een tabel genaamd producten in winkelwagentje, met voor elk product in het winkelwagentje een winkelwagen_id en een product_id

Als je dan op de knop drukt toevoegen aan winkelwagentje wordt er eerst gecheckt of er een cookie bestaat waarin het winkelwagen_id staat, zoja dan wordt het product toegevoegd aan dat winkelwagentje
zo nee dan wordt er alvorens het product toe te voegen eerst een record in de tabel winkelwagentje aangemaakt. En wordt ook de cookie geset.

Is misschien ook niet de meest ideale manier maar het werkt ;)

Check mijn V&A ads: https://tweakers.net/aanbod/user/9258/


  • vogeltje
  • Registratie: December 2001
  • Laatst online: 10-08-2025
waarom je scherm leeg blijft, is een kwestie van debuggen. Print die SQL-string eens naar het scherm. Klopt die wel, krijg je uberhaupt wel een resultaat met die query etc... kijk maar in de faq voor dat soort 'debug-rules'.

Feit blijft dat ik hiervoor echt geen voorbeeld hoef te geven. Uit een productenlijst klikt iemand (bij een product) op 'bestel' (oid), daardoor wordt het id van dat product aan je winkelwagen toegevoegd (session). Bij het weergeven van de inhoud van je winkelwagen, select je op de desbetreffende ID's uit je session.

binnenkort een hele dikke casemod :P


  • corani
  • Registratie: December 2000
  • Laatst online: 05-10-2017

corani

__,,,_(^_^)_,,,__

PHP:
1
2
3
4
5
6
foreach($_SESSION["mandje"] as $item)
{
    $result= mysql_query("SELECT * FROM raedt_artikelen WHERE ID = '$item'");
    $row = mysql_fetch_array($result, MYSQL_ASSOC );
    echo($row["ID"] ."<br>") ;
}

Laat me nou toch eens met rust man!
Iedereen die in telekinese gelooft, steek a.u.b. mijn hand op


  • Guldan
  • Registratie: Juli 2002
  • Laatst online: 05-05 21:55

Guldan

Thee-Nerd

Ook kan het natuurlijk een fout in je query zijn, hoewel ik dat nu niet denk. Bovenstaande code zou je idd eens meoetn proberen. Anders moet je ff achter je query "or die(mysql_error());" zetten. Als je query dan fout gaat dan moet hij een fout geven.

You know, I used to think it was awful that life was so unfair. Then I thought, wouldn't it be much worse if life were fair, and all the terrible things that happen to us come because we actually deserve them?


  • koraks
  • Registratie: Oktober 2003
  • Niet online
Mr._Superior schreef op zondag 24 april 2005 @ 17:06:
ok, als ik dus 3 artikelen in mijn sessie heb zitten moet ik dat eruit halen met een query:

PHP:
1
$result= mysql_query("SELECT * FROM raedt_artikelen WHERE ID = '".$_SESSION['mandje']."'");
Volgens mij ga je hier de mist in. $_SESSION['mandje'] is namelijk een array, als ik me niet vergis (je vult hem met "$_SESSION['mandje'][] = ...", toch?). En in SQL is selecteren op een array niet echt mogelijk enzo ;)

Voor 3 artikelen die je alleen maar kan selecteren op hun ID, heb je toch echt 3 queries nodig, ben ik bang. Dus je zal er iets van een foreach-loopje van moeten maken ofzo.
Mr._Superior schreef op zondag 24 april 2005 @ 19:10:
Koraks bedanbkt voor je reply, maar 2 posts boven je geeft corani inderdaad een for each loopje aan, toch bedankt.
Sorry, totaal overheen gelezen. My bad.

[ Voor 43% gewijzigd door koraks op 24-04-2005 19:11 ]


  • L01
  • Registratie: December 2003
  • Laatst online: 15:48
Koraks bedanbkt voor je reply, maar 2 posts boven je geeft corani inderdaad een for each loopje aan, toch bedankt.

Het is uiteindelijk gelukt door de post van : Guldan (bedankt!). Hij gaf aan "or die mssql error" te gebruiken. Hierdoor kreeg ik te zien dat ik geen database geselecteerd had!

Ik hoefde alleen maar de volgende regel toe te voegen en met de for each loop van Koraks werkt het perfect!

PHP:
1
 mysql_select_db($database_raedt, $raedt);


Heel erg bedankt voor het meedenken!

graag nog niet sluiten omdat ik msischien nog een vraagje heb met betrekking op het verwijderen uit een array, maar eerst ga ik dat zelf uitzoeken.

Hi, I'm a signature virus. Put me in your signature to help me spread.


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 06-05 18:51

Creepy

Tactical Espionage Splatterer

En toch sluit ik dit topic. Er zijn een hoop MySQL + PHP tutorials te vinden waarin dit soort zaken staan uitgelegd. En met een beetje debug werk (zie ook P&W FAQ - Leer **** debuggen!!) had je je eigen probleem makkelijk kunnen oplossen.

Note: ik sluit je topic niet omdat je probleem is opgelost. Opgeloste topics blijven gewoon open i.v.m. de search e.d. ;)

Mocht je een nieuw probleem hebben waar je niet uitkomt, open dan een nieuw topic i.p.v. door te gaan in een oude. Let daarbij wel op P&W FAQ - De "quickstart". In het kort komt dat hierop neer:
- Beschrijf je probleem
- Beschrijf wat je zelf al hebt geprobreert en wat daar niet mee lukt.

Met name het tweede punt vind ik nogal missen.

[ Voor 13% gewijzigd door Creepy op 24-04-2005 20:57 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.