Som besökare på Hamsterpaj samtycker du till användandet av s.k. cookies för att förbättra din upplevelse hos oss. Jag förstår, ta bort denna ruta!
Annons

Problem med sökfunktion

Skapad av clark-kim, 2013-03-12 23:20 i Webbutveckling & Programmering

1 624
2 inlägg
0 poäng
clark-kim
Visningsbild
P 33 Luleå Hjälte 197 inlägg
0
Hej!

Jag har en sökfunktion där man kan söka efter bostäder. Just nu funkar den bara om man fyller i alla fält. Men hur skulle jag kunna göra om jag vill t.ex. lämna ett fält tomt och bara söka på resten, eller bara söka på ett fält och lämna resten tomma?

Så här ser koden för sökfunktionen ut idag:

Ett stycke php-kod:
$rum = mysql_real_escape_string($_POST['rum']);
$status = mysql_real_escape_string($_POST['status']);
$bostadstyp = mysql_real_escape_string($_POST['bostadstyp']);
$kommun= mysql_real_escape_string($_POST['kommun']);
$boarea = mysql_real_escape_string($_POST['boarea']);
$min = mysql_real_escape_string($_POST['prismin']);
$max = mysql_real_escape_string($_POST['prismax']);


$sql = mysql_query("
SELECT *
FROM bostad
WHERE (antalrum LIKE '%$rum%' OR '$rum' = '')
AND (status LIKE '%$status%' OR '$status' = '')
AND (bostadstyp LIKE '%$bostadstyp%' OR '$bostadstyp' = '')
AND (adress LIKE '%$kommun%' OR '$kommun' = '')
AND (boarea LIKE '%$boarea%' OR '$boarea' = '')
AND (pris BETWEEN '$min' AND '$max')
") or die(mysql_error());


Tack på förhand!

Kanske ska påpeka att alla fält är selectfält, alltså inte textfält.

Är reklamen ivägen? Logga in eller registrera dig så försvinner den!

Peter_den_bra
Visningsbild
Hjälte 121 inlägg
0
Du kan använda en rad if statement för bara lägga till det som ska vara i queryn.
Ett stycke php-kod:
$query = 'SELECT * FROM bostad WHERE 1';
if ($rum)
{
$query .= " AND (antalrum LIKE '%$rum%')";
}
if ($status)
{
$query .= " AND (status LIKE '%$status%')";
}
if ($bostadstyp)
{
$query .= " AND (bostadstyp LIKE '%$bostadstyp%')";
}
if ($kommun)
{
$query .= " AND (adress LIKE '%$kommun%')";
}
if ($boarea)
{
$query .= " AND (boarea LIKE '%$boarea%')";
}
if ($min)
{
$query .= " AND (pris >= $min)";
}
if ($max)
{
$query .= " AND (pris <= $max)";
}

$sql = mysql_query($query) or die(mysql_error());

Det är inte fel att ha fel.


Forum » Datorer & IT » Webbutveckling & Programmering » Problem med sökfunktion

Ansvariga ordningsvakter:

Användare som läser i den här tråden just nu

1 utloggad

Skriv ett nytt inlägg

Hej! Innan du skriver om ett potentiellt problem så vill vi påminna dig om att du faktiskt inte är ensam. Du är inte onormal och världen kommer inte att gå under, vi lovar! Så slappna av och gilla livet i några minuter - känns det fortfarande hemskt? Skriv gärna ner dina tankar och frågor, vi älskar att hjälpa just dig!

Den här tråden är äldre än Rojks drömtjej!

Det senaste inlägget i den här tråden skrevs för över tre månader sedan. Är du säker på att du vill återuppliva diskussionen? Har du något vettigt att tillföra eller passar din fråga i en ny tråd? Onödiga återupplivningar kommer att låsas så tänk efter en extra gång!

Hjälp

Det här är en hjälpruta

Här får du korta tips och förklaringar om forumet. Välj kapitel i rullningslisten här ovanför.

Rutan uppdateras automagiskt

När du använder funktioner i forumet så visas bra tips här.


Annons
Annons
Annons
Annons