En søgefunktion (repost)
Hej eksperter...Jeg har tidligere postet dette indlæg, men fik ikke så mange svar, så jeg prøver lige igen. :-)
Jeg er igang med at lave en søgeside. Jeg har tidligere lavet sådan en, men kun med 1 enkelt input felt.
Nu er det så sådan at jeg nu har 5 søgefelter, hvoraf de 4 af dem er dropdown boxe (list-menu hedder de vidst også), hvor der hentes data fra databasen.
Det skal selvfølgelig være muligt for brugeren kun at søge ved at bruge et enkelt af disse felter... hvordan gør jeg lige det?
Jeg har forsøgt mig lidt frem... Dog tror jeg ikke jeg har fundet den helt rigtige løsning, da det tætteste jeg ku komme på var at lave sql sætningen i en if/else, hvor der så for hver mulighed blev ændret i sql sætningen...
Sådan ser min form ud:
<form method="POST" action="?mainkategori=1&show=seek" name="test">
<input type="hidden" name="action" value="seek">
<input type="hidden" name="mainkategori" value="<?=$mainkategori?>">
<table >
<tr>
<td width="138" align="left"><span class="style2">Buy / Sell</span></td>
<td width="162" align="left"><select name="userpost_sell" class="style2">
<option value="">--Select--</option>
<option value="1">Buy</option>
<option value="2">Sell</option>
</select></td>
</tr>
<tr>
<td width="138" align="left"><span class="style2">Product Group:</span></td>
<td width="162" align="left"><select name="userpost_group" class="style2" onChange="subgroup();">
<option value="0">---- SELECT ----</option>
<option value="1">Wood</option>
<option value="2">Steel/Iron</option>
<option value="3">Textiles</option>
<option value="4">Food/Agriculture</option>
<option value="5">Vehicles</option>
<option value="6">Investment</option>
</select></td>
</tr>
<tr>
<td align="left"><span class="style2">Product Subgroup</span></td>
<td align="left"><select name="userpost_sub" class="style2">
<option value="0">---- SELECT ----</option>
</select></td>
</tr>
<tr span class="style2">
<td align="left">Country:</td>
<td align="left"><span class="style2"><select name="land" class="style2">
<option value="0">---- SELECT ----</option>
<?
$res = mysql_query("SELECT * FROM lande ORDER BY navn");
while( $land = mysql_fetch_row($res) )
{
echo"<option value=\"$land[1]\">$land[1]</option>";
}
?>
</select></span></td>
</tr>
<tr class="style2">
<td align="left">Search text:</td>
<td align="left"><input name="searchtext" type="text" class="style2" size="30"></td>
</tr>
<tr>
<td align="left"><input type="submit" name="submit" value=" Submit " class="style2"></td>
<td></td>
</tr>
</table>
</form>
Selve seek.php ser sådan her ud:
<? //variabler fra search.php
$sell = $_POST[userpost_sell];
$userpost_group = $_POST[userpost_group];
$userpost_sub = $_POST[userpost_sub];
$land = $_POST[land];
$searchtext = $_POST[searchtext];
//sql
$foresp = mysql_query("SELECT * FROM userpost INNER JOIN brugere ON userpost.userpost_bruger = brugere.id WHERE userpost_sell LIKE '%".$sell."%' AND userpost_group LIKE '%".$userpost_group."%' AND userpost_sub LIKE '%".$userpost_sub."%' AND land LIKE '%".$land."%' AND userpost_over LIKE '%".$searchtext."%' OR userpost_text LIKE '%".$searchtext."%' ");
Så var det at hvis så '$sell' ikke var sat af brugeren ville jeg lave den sådan:
if($sell == ""){
$foresp = mysql_query("SELECT * FROM userpost INNER JOIN brugere ON userpost.userpost_bruger = brugere.id WHERE userpost_group LIKE '%".$userpost_group."%' AND userpost_sub LIKE '%".$userpost_sub."%' AND land LIKE '%".$land."%' AND userpost_over LIKE '%".$searchtext."%' AND userpost_text LIKE '%".$searchtext."%' ");
}elseif($userpost_group == ""){
osv...
Men det kan nok laves mere dynamisk end det... ik?
:)
Takker på forhånd!
