PHP (+MYSQL) Search filter
Voor mijn website ben ik op zoek naar het volgende.
Ik wil een search functie voor mijn MySQL-database. Deze heb ik al, maar er is echter een probleem.
Het is de bedoeling dat de resultaten uit de MySQL-database eerst allemaal worden getoond, en op basis van de zoekterm als het ware wordt gefilterd. Dit alles moet op één pagina gebeuren.
Weet iemand hoe ik dit kan doen?
Ik heb nu dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php (< zodat alles in de code hier verschijnt)
<form name="frmSearch" method="get" action="<?=$_SERVER['SCRIPT_NAME'];?>">
<table width="599" border="1">
<tr>
<th>Keyword
<input name="txtKeyword" type="text" id="txtKeyword" value="<?=$_GET["txtKeyword"];?>">
<input type="submit" value="Search"></th>
</tr>
</table>
</form>
[code]<?
if($_GET["txtKeyword"] != "")
{
$objConnect = mysql_connect("localhost","***","****") or die(mysql_error());
$objDB = mysql_select_db("****");
// Search By Name or Email
$strSQL = "SELECT * FROM employee WHERE (Name LIKE '%".$_GET["txtKeyword"]."%' and Address LIKE 'Ja')";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<?=$objResult["city"];?>
<?
}
?>
</table>
<?
mysql_close($objConnect);
}
?>
?>
<form name="frmSearch" method="get" action="<?=$_SERVER['SCRIPT_NAME'];?>">
<table width="599" border="1">
<tr>
<th>Keyword
<input name="txtKeyword" type="text" id="txtKeyword" value="<?=$_GET["txtKeyword"];?>">
<input type="submit" value="Search"></th>
</tr>
</table>
</form>
[code]<?
if($_GET["txtKeyword"] != "")
{
$objConnect = mysql_connect("localhost","***","****") or die(mysql_error());
$objDB = mysql_select_db("****");
// Search By Name or Email
$strSQL = "SELECT * FROM employee WHERE (Name LIKE '%".$_GET["txtKeyword"]."%' and Address LIKE 'Ja')";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<?=$objResult["city"];?>
<?
}
?>
</table>
<?
mysql_close($objConnect);
}
?>
?>
In eerste instantie moet dus alle gegevens van 'City' vertoond worden, waarna de zoekterm de boel filtert.
Alvast bedankt.
Gewijzigd op 18/08/2012 13:16:33 door Jelle Dijkstra
Wat wil je dan nog meer filteren, er staan al filters in je query?
Dus in eerste instantie moeten alle resultaten getoond worden, waarna de gebruiker de lijst (<li>) filtert op basis van een zoekterm.
Deze scriptjes zijn er wel, maar werken met jQuery en pakken mijn <li>-list niet, die wordt gegeneerd uit een database.
http://www.phphulp.nl/php/tutorial/overig/sql-beginners-handleiding/576/selecteren-van-records/1497/
Gewijzigd op 18/08/2012 21:02:47 door php knipper
Dat gebeurd al, maar de bezoeker van de site moet zelf via een zoekveld de lijst kunnen filteren.
? verduidelijk eens met een voorbeeld
Jelle Dijkstra op 18/08/2012 20:51:08:
Deze scriptjes zijn er wel, maar werken met jQuery en pakken mijn <li>-list niet
http://kilianvalkhof.com/2010/javascript/how-to-build-a-fast-simple-list-filter-with-jquery/ werkt obv <li>
Je zou dit ook met AJAX kunnen bereiken, vrij simpel zelfs.