Ik heb pas begonnen met php & MySQL en nu stuit ik op een klein probleem. Ik wil met een zoekfunctie leden selecteren met behulp van hun postcode.
Dit is de zoekpagina.
<?
echo "<HTML>\n
<HEAD><TITLE>Zoeken</TITLE></HEAD>
<BODY>
<p><b>Zoek in de database:</b></p>
<p>
<FORM METHOD=\"POST\" ACTION=\"resultaat.php\">
Postcode van: <input type=\"number\" name=\"postcode1\" size=\"6\">
tot: <input type=\"text\" name=\"postcode2\" size=\"6\"><br>
<input type=\"submit\" name=\"submit\" value=\"Zoeken\">
</p>
</BODY>
</HTML>";
?>
Dit is de resultaatpagina.
<?
//-- natuurlijk moet er eerst een connectie met de database worden gemaakt:
if (!@mysql_select_db("joomla", @mysql_connect("localhost", "root", "")))
{
echo "Er kan geen database connectie gemaakt worden.";
exit();
}
//-- $HTTP_POST_VARS[zoekterm] is de naam van het zoekveld in het formulier wat we
//-- hebben gemaakt in het vorige 'hoofdstuk'. Dit is dus de SQL code:
//-- $sql = "SELECT id,name FROM jos_users WHERE name LIKE '%$HTTP_POST_VARS[zoekterm]%'";
$sql = "SELECT Jos_users.name, jos_comprofiler.cb_adres, cb_postcode, jos_comprofiler.cb_plaats FROM jos_comprofiler INNER JOIN Jos_users ON jos_comprofiler.id = Jos_users.id WHERE cb_postcode BETWEEN '%$HTTP_POST_VARS[postcode1]%' AND '%$HTTP_POST_VARS[postcode2]%'";
//-- voer de SQL code uit en zet dit in een variabele zodat we zometeen kunnen
//-- kijken of er een resultaat is
$res = mysql_query($sql);
//-- bekijk nu of er een resultaat is, of het zoekwoord dus gevonden is of niet
{
//-- er is een resultaat gevonden, toon de resultaten via een while () loop
while ($row = mysql_fetch_array($res))
{
echo "<p><b>$row[name]</b><br>";
echo "$row[cb_adres]<br>";
echo "$row[cb_postcode]<br>";
echo "$row[cb_plaats]</p>";
}
echo "<a href=\"zoek.php\" title=\"zoek opnieuw\">zoek opnieuw</a><BR>";
}
?>
Als ik laat zoeken op enkel 1 postcode dan werkt het wel, maar met de functie BETWEEN lukt het niet. Wie kan mij helpen met dit 'waarschijnlijk' makkelijke vraag.
4.817 views