Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

selecteren uit database via link

blackhawkdesign
7 antwoorden
  • Hallo Allemaal,
    Ik heb een tijdje terug een website gemaakt voor iemand die wijn verkoopt. Dij wijnlijst was eerst heel kort maar wordt nu door eigen import wat langer. Ik ben dus nu bezig om de wijnen pagina aan te passen zodat bezoekers via een knopje/link een selectie kunnen maken.
    Nou is dat via de volgende code gelukt;
    [code:1:508978cc65]$array = array('huiswijn','Terre Forte','Benezet','Fraisse','Saint-Jean','Guery');
    if(isset($_GET['sortby']))
    {
    $sorteer = (in_array($_GET['sortby'],$array)) ? $_GET['sortby'] : '';
    }
    else
    {
    $sorteer = '';
    }

    //Lijst met wijnen samenstellen
    $wijn_SQL="SELECT * FROM wijnen3, wijnsoort WHERE wijnen3.wijnsoort_id=wijnsoort.wijnsoort_id AND wijn_klasse='$sorteer' ORDER BY wijnsoort.wijnsoort_id, wijn_prijs";[/code:1:508978cc65]
    Als ik de wijn van wijnhuis Benezet wil hebben dan lukt dat met het volgende linkje
    [code:1:508978cc65]wijnen.php?sortby=Benezet[/code:1:508978cc65]
    Alleen wil ik dat als men de eerste keer op deze pagina komt men de hele wijnlijst krijgt, dus moet dan eigenlijk de wijn_klasse='$sorteer' er helemaal uit.
    En daar loop ik nu dus tegenaan, want zoals in het voorbeeld;
    [code:1:508978cc65]else
    {
    $sorteer = '';
    }
    [/code:1:508978cc65]
    dat werkt dus niet.
    Wie geeft mij een duwtje in de goede richting?
    Alvast bedankt weer!
    Moos
  • je zult je sql conditioneel moeten opbouwen:
    [code:1:d0dd7d3c53]$wijn_SQL="SELECT * FROM wijnen3, wijnsoort WHERE wijnen3.wijnsoort_id=wijnsoort.wijnsoort_id";
    if(sorteer != '') $wijn_SQL .= "AND wijn_klasse='$sorteer'";
    $wijn_SQL .= "ORDER BY wijnsoort.wijnsoort_id, wijn_prijs";[/code:1:d0dd7d3c53]
    Je ziet ongetwijfeld nu nog andere manieren om deze code beter te maken, maar de aanpak heb je nu in ieder geval.

    Groet
  • Hoi marientje, Als ik dit er in plak dan werkt het niet maar ik ga ermee aan de slag. Ik wist namelijk niet dat je ook in een sql conditioneel kan werken. Bedankt voor het duwtje!
    Moos
  • Als je [b:4841638ff8]$sorteer[/b:4841638ff8] nu een klein beetje uitbreidt:
    [code:1:4841638ff8]if(isset($_GET['sortby']))
    {
    $sorteer = (in_array($_GET['sortby'],$array)) ? "AND wijn_klasse='".$_GET['sortby']."'" : '';
    }
    else
    {
    $sorteer = '';
    }
    [/code:1:4841638ff8]

    Dan kan je SQL regel zoiets worden:
    [code:1:4841638ff8]
    $wijn_SQL="SELECT * FROM wijnen3, wijnsoort WHERE wijnen3.wijnsoort_id=wijnsoort.wijnsoort_id ".$sorteer." ORDER BY wijnsoort.wijnsoort_id, wijn_prijs";
    [/code:1:4841638ff8]
    Dan houd je het bij 1 conditie ipv 2x de check uitvoeren.
  • Hoi Ger, De oplossing van marientje kreeg ik niet werkend, deze wel.
    Das hartstikke mooi, kan ik vast weer een stuk verder. Had ik maar een boek waar dit allemaal duidelijk in stond, tis voor mij nog moeilijk te volgen.
    Bedankt!
    Moos
  • Je hebt anders diverse boeken over dit soort onderwerpen. Dan werk je meestal een casus uit en krijg je stap voor stap de basis beginselen onder de knie. Dus ik zou even op zoek gaan naar een php boek waar ze ook met databases werken ;)
  • blackhawkdesign, Zo'n boek heb ik maar daar staat de basis in en heb ik de site kunnen maken zoals die nu is maar komen dingen als deze niet aan de orde. Dus zoek ik een vervolg zegmaar. Ik zou bv ook meer willen weten over veiligheid (sql injection) Dus als je een goed boek weet graag!
    Moos

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.