vraag bij zoekfunctie
rick vd molen
16/06/2010 22:30:05Ik heb nu een zoekfunctie werkend op mijn site maar ik wil iets aanpassen.
Ik heb in de database een tabel met namen, nu wil ik dus dat als de gebruiker 'Piet de Boer' opzoekt, dat hij/zij dan ook de gehele naam moet intypen en niet bv. 'Piet de'.
ik hoop dat het helder is wat ik wil, graag een reactie.
Ik heb in de database een tabel met namen, nu wil ik dus dat als de gebruiker 'Piet de Boer' opzoekt, dat hij/zij dan ook de gehele naam moet intypen en niet bv. 'Piet de'.
ik hoop dat het helder is wat ik wil, graag een reactie.
PHP hulp
22/11/2024 06:56:57Joren de Wit
16/06/2010 22:50:57Ik vermoed dat je nu LIKE gebruikt in je query? Als je alleen volledige matches terug wilt geven, zou je gewoon de = moeten gebruiken:
rick vd molen
17/06/2010 07:40:45ik gebruik inderdaad LIKE in mijn query.
SELECT * FROM speler WHERE spelersnaam LIKE '%$HTTP_POST_VARS[zoekterm]%'
dit is hem, wat moet ik hier in veranderen?
dit werkt namelijk niet:
SELECT * FROM speler WHERE spelersnaam = 'Piet de Boer'
SELECT * FROM speler WHERE spelersnaam LIKE '%$HTTP_POST_VARS[zoekterm]%'
dit is hem, wat moet ik hier in veranderen?
dit werkt namelijk niet:
SELECT * FROM speler WHERE spelersnaam = 'Piet de Boer'
Joren de Wit
17/06/2010 08:51:54Om te beginnen mag je HTTP_POST_VARS helemaal vergeten, dat stamt ongveer uit het jaar nul. Al jaar en dag gebruiken we daar de superglobal $_POST voor ;-)
Verder zul je de WHERE van je query aan moeten passen en dan natuurlijk niet letterlijk mijn voorbeeld overnemen. Compleet met beveiliging tegen sql injectie:
Nog een tip: gebruik geen * in je query, geef liever alle velden op die je op wilt halen.
Verder zul je de WHERE van je query aan moeten passen en dan natuurlijk niet letterlijk mijn voorbeeld overnemen. Compleet met beveiliging tegen sql injectie:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$sql = "
SELECT *
FROM speler
WHERE spelernaam = '".mysql_real_escape_string($_POST['zoekterm'])."'
";
?>
$sql = "
SELECT *
FROM speler
WHERE spelernaam = '".mysql_real_escape_string($_POST['zoekterm'])."'
";
?>
Nog een tip: gebruik geen * in je query, geef liever alle velden op die je op wilt halen.
rick vd molen
17/06/2010 13:31:14Haha uit het jaar nul? Wel grappig dat ik de tutorial over een zoekfunctie maken hier vandaan heb ;)
maar bedankt voor de info, het is me uiteindelijk gelukt!
de gebruiker moet nu de gehele naam in typen om een resultaat te krijgen, dat is wat ik wilde.
bedankt!
maar bedankt voor de info, het is me uiteindelijk gelukt!
de gebruiker moet nu de gehele naam in typen om een resultaat te krijgen, dat is wat ik wilde.
bedankt!
TJVB tvb
17/06/2010 14:26:49Rick, het is belangrijk om bij tutorials ook even te kijken naar de datum waarop die gemaakt is en het bijbehorend commentaar. Sommige zijn zeer verouderd en bij andere staat in het commentaar al dat het een slechte tutorial is.