Beste PHP-ers, ik heb een vraagje.

In mijn database heb ik bepaalde waarden staan voor bijvoorbeeld de categorie 'beoordeling'. Deze lopen uiteen van 1-5.

Kan ik in mijn query ook opgeven dat alles tussen de twee en de vier moet worden geselecteerd??
Hte zal haast wel maar ik weet niet hoe. Wellicht kunnen jullie me op weg helpen.

Met vriendelijke groet,
Frank
SELECT bla FROM tabel WHERE beoordeling BETWEEN 2 AND 4
SELECT colom_naam FROM tabel_naam
WHERE colom_naam
BETWEEN waarde1 AND waarde2

Voorwaarde is wel dat je kolom als INT hebt staan in dit geval met de cijfers, maar daar gaan we wel vanuit
Bedankt voor jullie reacties. De kolom heb ik op INT staan. Met between echter lukt het niet zo goed. Dit is mijn query:

$query="SELECT * FROM portfolio WHERE categorie='wijn' AND WHERE prijs BETWEEN ".$prijs1." AND ".$prijs2." AND WHERE cijfer BETWEEN ".$ster1." AND ".$ster2." ORDER BY ".$sort." ".$volgorde." LIMIT ".$offset.",".$limit."";


De variabelen vult hij allemaal netjes in maar krijg de melding:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\phpdev\www\wijn.php on line 509


Dit is lijn 509: while($rij=mysql_fetch_array($result)){etc.

Bin een simpele query doet hij het wel dus de query is niet goed. kan alleen niet zien wat er niet goed aan is. Heb nog nooit met BETWEEN gewerkt, vandaar.

Gr.
Frank
Probeer deze eens:
$query="SELECT * FROM portfolio WHERE categorie='wijn' AND prijs BETWEEN ".$prijs1." AND ".$prijs2." AND cijfer BETWEEN ".$ster1." AND ".$ster2." ORDER BY ".$sort.", ".$volgorde." LIMIT ".$offset.",".$limit."";
Eh, jongens (en meisjes), misschien is het een idee om de query eens wat beter (lees: overzichtelijker) te noteren?

<?php

$query="
SELECT
*
FROM
portfolio
WHERE
categorie='wijn'
AND
prijs BETWEEN ".$prijs1." AND ".$prijs2."
AND
cijfer BETWEEN ".$ster1." AND ".$ster2."
ORDER BY
".$sort." ASC,
".$volgorde." ASC
LIMIT ".$offset.",".$limit."
"; // die laatste 2 dubbele quotes zijn eigenlijk niet nodig

?>
Dit maakt de query toch een heel stuk leesbaarder, of niet soms? ;)

Edit: Nog even 2x ASC toegevoegd om het compleet te maken.
Heel fijn dat het gelukt is maar nog 1 vraagje:

Als ik een decimale waarde, zeg 4.59, wil wegschrijven en ik gebruik DECIMAL dan zet hij gewoon 4 in de datbase. Hoe kan ik dit voor elkaar krijgen en kan je dit ook gebruiken in combinatie met BETWEEN of moet je dan echt INT gebruiken??

Bedankt.

Gr.,
Frank
Probeer eens 'deci,mal' ipv dec.mal
Zie de handleiding hoe je een DECIMAL moet gebruiken. De waarde 4.59 moet je gewoon kunnen wegschrijven in de database, geen enkel probleem.

BETWEEN heeft geen problemen met decimalen, kun je gewoon opgeven als waardes. BETWEEN 'a' AND 'c' werkt volgens mij ook.
Ik heb het nagekeken en ben weer helemaal op de hoogte. Bedankt!!!!

Reageren