Sökfunktion med php och mysql

PHP

6 svar · 260 visningar · startad av UrMe

Medlem sedan apr. 2001762 inlägg
Trådstart#1

Jag har en html sida som innehåller följande:

<FORM ACTION="databas4.php" METHOD=GET>
First Name: <INPUT TYPE=TEXT NAME="name">
<INPUT TYPE=SUBMIT VALUE="SEARCH"></FORM>

sedan har jag en php fil som heter databas.php4 denna innehåller:

$result = mysql_query(
"SELECT * FROM TEST WHERE Namn='$name' ");

Men jag kan bara söka på hela namn, om vi säger att det finns en som heter Kalle i databasen så vill jag kunna söka på "kall" och få upp alla namn som innehåller "kall"..
Hur gör jag detta på ett lätt sätt?

Medlem sedan mars 20007 896 inlägg
#2

Du använder s.k. wildcards, %-tecken, och LIKE istället för =.
SQL-satsen borde då se ut så här:
SELECT * FROM TEST WHERE Namn LIKE = '%$name%'

Medlem sedan dec. 200012 464 inlägg
#3

Aha, man använder sig av like t.ex.

-- hitta alla vars namn 
-- innehåller kall
SELECT * FROM TEST 
 WHERE Namn like '%kall%' 

-- hitta alla vars namn 
-- börjar på kall
select * from test
 where name like 'kall%'

man använder % för att matcha ett godtyckligt antal tecken och _ för att matcha ett godtyckligt tecken

Medlem sedan apr. 2001762 inlägg
#4

Tackar!!

Medlem sedan apr. 2001762 inlägg
#5

En liten fråga till... om man vill ha fram alla namn när man söker .. går det?

Medlem sedan dec. 200012 464 inlägg
#6

Alla? Det enklaste är väl att utelämna villkoret överhuvudtaget.

  select * from test
-- eller om man prompt 
-- vill ha ett villkor
  select * from test where namn like '%'
Medlem sedan maj 20001 953 inlägg
#7

Hett tips om man vill kolla hur en bra sökfunktion ser ut:
Ladda ner Phorum och kolla in den koden. Ganska komplex och fixar det mesta!

266 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)