Pagina 1 van 2 12 LaatsteLaatste
Weergegeven resultaten: 1 t/m 10 van 14
  1. #1
    Gevorderd   Stuntman Phil's schermafbeelding
    Geregistreerd
    30 March 2008
    Locatie
    Genk
    Berichten
    255
    Bedankjes
    79
    Bedankt
    191 keer in 108 posts

    Ongelukkig MySQL BETWEEN Variabelen?!

    Heyla!

    Voor mijn eindwerk moet ik een webshop maken,
    nu was ik bezig met een zoekfunctie in te bouwen, om producten uit de databank op te vragen tussen 2 bepaalde prijzen (de gebruiker moet dan een minimum & maximum bedrag invoeren in 2 tekstvakken en op een knop drukken om te zoeken)

    Mijn vraag, hoe stel je die Query op om tussen die 2 bedragen de bijhorende producten op te vragen?!

    Dit is mijn huidige, maar die werkt niet...

    $sql="SELECT ProductNaam, ProductInfo, ProductVerkoopprijs FROM producten WHERE ProductVerkoopprijs BETWEEN '" . $minimum . " AND " . $maximum ."'";

    (&minimum en &maximum zijn de 2 variabelen van de POST van de 2 tekstvakken)

    Can anyone help me? More info needed? Ask!
    Wie de bal kaatst.......kan hem terug verwachten!

    Als je mijn tip waardevol vindt - druk je op de Bedankknop.

  2. De volgende gebruiker bedankt Stuntman Phil voor deze nuttige post:

    ultddave (25 February 2011)

  3. #2
    Expert   Butterflyice's schermafbeelding
    Geregistreerd
    9 June 2006
    Berichten
    738
    Bedankjes
    34
    Bedankt
    636 keer in 410 posts
    Vang je de min en max eerst af voor je het gebruikt in de query ?

    PHP-code:
     
    $minimum  
    =  $_POST[''minimum];
    $maximum =  $_POST["maximum "];
     
    $sql="SELECT ProductNaam, ProductInfo, ProductVerkoopprijs FROM producten WHERE ProductVerkoopprijs BETWEEN '" $minimum " AND " $maximum ."'"
    Dan behoort hij wel te werken.
    PHP-code:
    function handleException($e) { echo $e->getMessage(); }
            
    set_exception_handler("handleException");
                throw new 
    Exception("There is always a way");
            echo 
    "You caught me!"

  4. De volgende gebruiker bedankt Butterflyice voor deze nuttige post:

    ultddave (25 February 2011)

  5. #3
    Gevorderd   Stuntman Phil's schermafbeelding
    Geregistreerd
    30 March 2008
    Locatie
    Genk
    Berichten
    255
    Bedankjes
    79
    Bedankt
    191 keer in 108 posts
    Ja zo staat het er op:

    $minimum=$_POST['minimum'];
    $maximum=$_POST['maximum'];

    Werkt niet =/...
    Wie de bal kaatst.......kan hem terug verwachten!

    Als je mijn tip waardevol vindt - druk je op de Bedankknop.

  6. De volgende gebruiker bedankt Stuntman Phil voor deze nuttige post:

    ultddave (25 February 2011)

  7. #4
    Expert   Butterflyice's schermafbeelding
    Geregistreerd
    9 June 2006
    Berichten
    738
    Bedankjes
    34
    Bedankt
    636 keer in 410 posts
    Heb je de database tabel voor mij zo dat ik kan testen.
    PHP-code:
    function handleException($e) { echo $e->getMessage(); }
            
    set_exception_handler("handleException");
                throw new 
    Exception("There is always a way");
            echo 
    "You caught me!"

  8. De volgende gebruiker bedankt Butterflyice voor deze nuttige post:

    ultddave (25 February 2011)

  9. #5
    Gevorderd   Stuntman Phil's schermafbeelding
    Geregistreerd
    30 March 2008
    Locatie
    Genk
    Berichten
    255
    Bedankjes
    79
    Bedankt
    191 keer in 108 posts
    Hoe kan ik deze doorsturen ofzo? Want die staat in Xampp...
    Wie de bal kaatst.......kan hem terug verwachten!

    Als je mijn tip waardevol vindt - druk je op de Bedankknop.

  10. De volgende gebruiker bedankt Stuntman Phil voor deze nuttige post:

    ultddave (25 February 2011)

  11. #6
    Gevorderd   Stuntman Phil's schermafbeelding
    Geregistreerd
    30 March 2008
    Locatie
    Genk
    Berichten
    255
    Bedankjes
    79
    Bedankt
    191 keer in 108 posts
    Dit is momenteel de code van de hele pagina

    PHP-code:
    <html>
    <head>
    <title>Diamond PCWorks</title>
    <link rel="stylesheet" type="text/css" href="../inhoud/css/algemeen.css" />
    <script type="text/javascript">
    function legen()
    {
    document.zoek.name.value="";
    }
    function legengeldmi()
    {
    document.zoekgeld.minimum.value="";
    }
    function legengeldma()
    {
    document.zoekgeld.maximum.value="";
    }
    </script>
    </head>
    <body>
    <div class="rounded-boxxx"> 
        <div class="top-left-cornerxx"><div class="top-left-insidexx">&bull;</div></div> 
        <div class="bottom-left-cornerxx"><div class="bottom-left-insidexx">&bull;</div></div> 
        <div class="top-right-cornerxx"><div class="top-right-insidexx">&bull;</div></div> 
        <div class="bottom-right-cornerxx"><div class="bottom-right-insidexx">&bull;</div></div> 
        <div class="box-contentsxx"> 
            <a href="../inhoud/index.html" /><img src="../afbeeldingen/knophome.jpg" border = none/></a>
            <a href="../inhoud/producten.html" /><img src="../afbeeldingen/knopproducten.jpg" border = none/></a>
            <a href="../inhoud/crew.html" /><img src="../afbeeldingen/knopcrew.jpg" border = none/></a>
            <a href="../inhoud/contact.html" /><img src="../afbeeldingen/knopcontact.jpg" border = none/></a>
        </div> 
    </div>
    <div class="rounded-box"> 
        <div class="top-left-corner"><div class="top-left-inside">&bull;</div></div> 
        <div class="bottom-left-corner"><div class="bottom-left-inside">&bull;</div></div> 
        <div class="top-right-corner"><div class="top-right-inside">&bull;</div></div> 
        <div class="bottom-right-corner"><div class="bottom-right-inside">&bull;</div></div> 
        <div class="box-contents"> 
        <a href="../inhoud/producten.html" /><img src="../afbeeldingen/knopterug.jpg" border = none/></a>
        <h1>Grafische Kaarten:</h1>
            <img src="../afbeeldingen/producten/graka.jpg" height="150" width="200" />
            <form  name="zoek" method="post" action="<?php echo $SERVER['PHP_SELF'];?>"> 
            <input  type="text" name="name" style="width:300px;font-family:cursive;border:groove;color:grey;font-style:italic;" value="Geef de naam of een deel ervan in om te zoeken" onfocus='legen()'> 
            <input  type="submit" name="submit" value="Zoek op sleutelwoorden"> 
            </form> 
            <form  name="zoekgeld" method="post" action="<?php echo $SERVER['PHP_SELF'];?>"> 
            <input  type="text" name="minimum" style="width:70px;font-family:cursive;border:groove;color:grey;font-style:italic;" value="Minimum" onfocus='legengeldmi()'> 
            <input  type="text" name="maximum" style="width:70px;font-family:cursive;border:groove;color:grey;font-style:italic;" value="Maximum" onfocus='legengeldma()'> 
            <input  type="submit" name="submit" value="Zoek op geld"> 
            </form> 
            <p>Dit zijn zeg maar, de ogen van de computer.<br/>De grafische kaart zorgt dat data die hij binnen gestuurd krijgt, wordt omgezet in (meestal 3D) beeld op uw monitor.<br/> De laatste generaties van grafische kaarten, neemt ook een deel van de processor zijn werk voor zijn rekening. </p>
        <?php
            
    $host        
    'localhost';
    $gebruiker    'root';
    $wachtwoord    'root';
    $database    'gip';
    $result        null;
    $db            null;

    if(isset(
    $_POST['submit'])){ 
          if(
    $_POST['name']){ 
          
    $name=$_POST['name']; 
          
    //connect  to the database 
    $db=mysql_connect  ("localhost""root",  "root") or die ('I cannot connect to the database  because: ' mysql_error()); 
          
    //-select  the database to use 
          
    $mydb=mysql_select_db("gip"); 
          
    //-query  the database table 

    $mysqli = new mysqli($host$gebruiker$wachtwoord);
    $mysqli->select_db($database);
          
    //-query  the database table 
          
    $sql="SELECT ProductNaam, ProductInfo, ProductVerkoopprijs FROM producten WHERE ProductNaam LIKE '%" $name .  "%' OR ProductInfo LIKE '%" $name ."%'"
          
    //-run  the query against the mysql query function 
          
    $result=mysql_query($sql); 
          
    //-create  while loop and loop through result set 
          
    while($row=mysql_fetch_array($result)){ 
                  
    $ProductNaam  =$row['ProductNaam']; 
                  
    $ProductInfo  =$row['ProductInfo']; 
                  
    $ProductVerkoopprijs =$row['ProductVerkoopprijs'];
         
          
    //-display the result of the array 
          
    echo "<b>" .$ProductNaam":</b><br />";
          echo 
    "" .$ProductInfo"<br />";
          echo 
    "<b>€" .$ProductVerkoopprijs"</b><br /><br />";
          } 
          } 
          else if(
    $_POST['submit']){ 
          
    $minimum=$_POST['minimum']; 
          
    $maximum=$_POST['maximum']; 
          
    //connect  to the database 
    $db=mysql_connect  ("localhost""root",  "root") or die ('I cannot connect to the database  because: ' mysql_error()); 
          
    //-select  the database to use 
          
    $mydb=mysql_select_db("gip"); 
          
    //-query  the database table 

    $mysqli = new mysqli($host$gebruiker$wachtwoord);
    $mysqli->select_db($database);
          
    //-query  the database table 
          
    $sql="SELECT ProductNaam, ProductInfo, ProductVerkoopprijs FROM producten WHERE ProductVerkoopprijs BETWEEN '" $minimum .  " AND " $maximum ."'"
          
    //-run  the query against the mysql query function 
          
    $result=mysql_query($sql); 
          
    //-create  while loop and loop through result set 
          
    while($row=mysql_fetch_array($result)){ 
                  
    $ProductNaam  =$row['ProductNaam']; 
                  
    $ProductInfo  =$row['ProductInfo']; 
                  
    $ProductVerkoopprijs =$row['ProductVerkoopprijs'];
         
          
    //-display the result of the array 
          
    echo "<b>" .$ProductNaam":</b><br />";
          echo 
    "" .$ProductInfo"<br />";
          echo 
    "<b>€" .$ProductVerkoopprijs"</b><br /><br />";
          } 
          } 
          else{ 
          echo 
    "<b>Gelieve iets in te voeren!</b>";       
        } 

    else{
        
    $mysqli = new mysqli($host$gebruiker$wachtwoord);
    $mysqli->select_db($database);
    $sql "SELECT ProductNaam, ProductInfo, ProductVerkoopprijs FROM producten WHERE ProductCategorie = 'GRA' GROUP BY ProductVerkoopprijs ";    
    $query $mysqli->query($sql);
    $num mysqli_num_rows($query); 

    if(empty(
    $num)) {
      echo 
    "<p>Er zijn geen producten gevonden.</p>\n";
    } else {
      
      while(
    $product mysqli_fetch_object($query)) {
        echo 
    "<b>".$product->ProductNaam.":</b><br />";
        echo 
    "".$product->ProductInfo."<br />";
        echo 
    "<b>€".$product->ProductVerkoopprijs."</b><br /><br />";
                }
            }
    }


    ?>
        </div> 
    </div>


    </body>
    </html>
    Wie de bal kaatst.......kan hem terug verwachten!

    Als je mijn tip waardevol vindt - druk je op de Bedankknop.

  12. De volgende gebruiker bedankt Stuntman Phil voor deze nuttige post:

    ultddave (25 February 2011)

  13. #7
    Expert   Butterflyice's schermafbeelding
    Geregistreerd
    9 June 2006
    Berichten
    738
    Bedankjes
    34
    Bedankt
    636 keer in 410 posts
    Waar zijn je database tabellen?
    Dit is de code van de pagina.
    Als goed is heb je ook een database.
    daar staan de tabellen in deze wil ik graag hebben om te testen.
    PHP-code:
    function handleException($e) { echo $e->getMessage(); }
            
    set_exception_handler("handleException");
                throw new 
    Exception("There is always a way");
            echo 
    "You caught me!"

  14. De volgende gebruiker bedankt Butterflyice voor deze nuttige post:

    ultddave (25 February 2011)

  15. #8
    Gevorderd   Stuntman Phil's schermafbeelding
    Geregistreerd
    30 March 2008
    Locatie
    Genk
    Berichten
    255
    Bedankjes
    79
    Bedankt
    191 keer in 108 posts
    Citaat Oorspronkelijk geplaatst door Butterflyice Bekijk bericht
    Waar zijn je database tabellen?
    Dit is de code van de pagina.
    Als goed is heb je ook een database.
    daar staan de tabellen in deze wil ik graag hebben om te testen.
    Ja ik snap wat je bedoelt, maar ik weet niet hoe ik deze tabellen kan doorsturen? Ik kan de databank exporteren dan heb ik een .sql bestandje, maar hoe zet ik 'm dan hierop? (& Sorry voor het "dom zijn" haha...)
    Wie de bal kaatst.......kan hem terug verwachten!

    Als je mijn tip waardevol vindt - druk je op de Bedankknop.

  16. De volgende gebruiker bedankt Stuntman Phil voor deze nuttige post:

    ultddave (25 February 2011)

  17. #9
    Administrator   ultddave's schermafbeelding
    Geregistreerd
    24 June 2006
    Locatie
    Genk
    Berichten
    1.527
    Bedankjes
    5.389
    Bedankt
    2.577 keer in 1.271 posts
    Ik zie wel dat ge MySQLi en MySQL code door elkaar gebruikt ;

    Hier bijvoorbeeld SQL code:
    $db=mysql_connect ("localhost", "root", "root") or die ('I cannot connect to the database because: ' . mysql_error());
    //-select the database to use
    $mydb=mysql_select_db("gip");
    //-query the database table
    En dan direct erna MySQLi code
    $mysqli = new mysqli($host, $gebruiker, $wachtwoord);
    $mysqli->select_db($database);
    Ik zie dan ook dit => Mysqli connectie, ma geen mysqli_query, ma wel mysql_query. nu ge hebt nog hoger een mysql connectie open staan, dus dat zal toch geen problemen geven, ma het staat allemaal door elkaar ;P.
    $mysqli = new mysqli($host, $gebruiker, $wachtwoord);
    $mysqli->select_db($database);

    $sql="SELECT ProductNaam, ProductInfo, ProductVerkoopprijs FROM producten WHERE ProductVerkoopprijs BETWEEN '" . $minimum . " AND " . $maximum ."'";

    $result=mysql_query($sql);
    Tis trouwens niet de bedoeling dat ge voor elke query een nieuwe connectie opzet.

    => Keuze maken of ge met mysql of mysqli gaat werken.
    => Database connectie maken.
    => Database selecteren
    => Query uitvoeren
    => Resultaat van query ergens voor gebruiken
    => Nieuwe query uitvoeren
    => Nieuw resultaat ergens voor gebruiken
    => Connectie sluiten

    Dus in code vorm is dat (voor mysqli):
    PHP-code:
    $host        'localhost'
    $gebruiker    'root'
    $wachtwoord    'root'
    $database    'gip'

    # Mysqli connectie opzetten.
    $mysqli = new mysqli($host$gebruiker$wachtwoord$database);

    # Kijken of het maken van de connectie gelukt is.
    if (mysqli_connect_error()) {
        die(
    'Connect Error (' mysqli_connect_errno() . ') '
                
    mysqli_connect_error());
    }      

    $minimum=$_POST['minimum'];  
    $maximum=$_POST['maximum'];   

    # Als ge parameters in een query gaat invoegen, kunt ge best op deze manier werken.   
    # De prepare statement van mysqli gaat SQL injection voorkomen. ;)
    # Elk vraagteken stelt dus de plaats van een parameter voor
    if ($stmt $mysqli->prepare("SELECT ProductNaam, ProductInfo, ProductVerkoopprijs FROM producten WHERE ProductVerkoopprijs BETWEEN ? AND ?")) {

        
    # Parameters invullen. i > Integer. s > String.
        
    $stmt->bind_param("ii"$minimum$maximum);

        
    # Query effectief uitvoeren.
        
    $stmt->execute();

        
    # Resultaten binden aan variabelen.
        
    $stmt->bind_result($productNaam$productInfo$productVerkoopprijs);

        
    # Effectief fetchen van elke rij.
        
    while ($stmt->fetch()) 
            
    printf ("Naam: %s, Info: %s, Prijs: %s\n"$productNaam$productInfo$productVerkoopprijs);

        
    # Statement sluiten
        
    $stmt->close();
    }

    # Connectie sluiten.
    $mysqli->close(); 
    Ge kunt ook uw resultaten in een array opvangen ipv apparte variabele voor elke kolom etc. Ma tis maar als voorbeeld.

    (Het gaat het probleem mss niet oplossen, ma de code is dan alleszins duidelijker .)

    PS: De code hierboven bevat weinig error handling, zo wordt er ook niet gekeken of die 2 POST variabelen effectief bestaan etc. Tis vooral bedoelt als voorbeeld van het gebruik van mysqli.

    Mvg,
    Dave
    Laatst gewijzigd door ultddave; 25 February 2011 om 14:54
    "Friendship. It's the hardest thing in the world to explain. It's not something you learn in school. But if you haven't learned the meaning of friendship, you really haven't learned anything." ~ Muhammad Ali

  18. De volgende gebruiker bedankt ultddave voor deze nuttige post:

    Stuntman Phil (25 February 2011)

  19. #10
    Gevorderd   Stuntman Phil's schermafbeelding
    Geregistreerd
    30 March 2008
    Locatie
    Genk
    Berichten
    255
    Bedankjes
    79
    Bedankt
    191 keer in 108 posts
    Haha ja, de leerkracht waarvan ik les krijg is zelf gans in de war daarmee... Slaat dus blijkbaar door naar zijn leerlingen xD
    Wie de bal kaatst.......kan hem terug verwachten!

    Als je mijn tip waardevol vindt - druk je op de Bedankknop.

  20. De volgende gebruiker bedankt Stuntman Phil voor deze nuttige post:

    ultddave (25 February 2011)

Discussie informatie

Users Browsing this Thread

Momenteel bekijken 1 gebruikers deze discussie. (0 leden en 1 gasten)

Soortgelijke discussies

  1. MySQL
    Door Fck_ in forum Webdevelopment & Programming
    Reacties: 10
    Laatste bericht: 3 May 2010, 12:31
  2. ADO.net en Mysql
    Door pietereeckhout in forum Webdevelopment & Programming
    Reacties: 0
    Laatste bericht: 1 June 2008, 17:39

Favorieten/bladwijzers

Favorieten/bladwijzers

Regels voor berichten

  • Je mag geen nieuwe discussies starten
  • Je mag niet reageren op berichten
  • Je mag geen bijlagen versturen
  • Je mag niet je berichten bewerken
  •