[SQL] string doorzoeken in 2 velden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Shane Deconinck

Shane Deconinck

30/03/2006 20:19:00
Quote Anchor link
hey,

Ik wil in een site leden laten opzoeken uit de tabel mxp_piloten. Maar omdat Achternaam en Voornaam in 2 aparte velden opgeslaan zijn zou hij de string "voornaam naam" moeten kunnen verwerken?

hoe zou ik dit best doen, hier de query die ik gebruik om gwn op naam te zoeken:

$sql = "SELECT * FROM mxp_piloten WHERE achternaam LIKE '%$HTTP_POST_VARS[zoekterm]%' ORDER BY achternaam";
 
PHP hulp

PHP hulp

22/11/2024 00:06:47
 

30/03/2006 21:08:00
Quote Anchor link
$sql = "SELECT * FROM mxp_piloten WHERE achternaam LIKE '%{$_POST['zoekterm']}%' AND voornaam LIKE '%{$_POST['zoekterm']}%' ORDER BY achternaam";
 
Shane Deconinck

Shane Deconinck

30/03/2006 21:26:00
Quote Anchor link
nee, deze werkt niet omdat bv:

zoekterm = "Jan Peeters"

voornaam bevat "Jan" maar niet "Jan Peeters"
achternaam bevat "Peeters" maar niet "Jan Peeters"

Dus Jan Peeters zou moeten opgesplitst worden en dan doorzocht worden. Dus :

zoekterm1 = "Jan"
zoekterm2 = "Peeters"

voornaam = bevat "jan"
achternaam = bevat "Peeters"

Ik snap wel de werking, maar heb nog te weinig php-ervaring om dit om te zetten in code
 

30/03/2006 21:28:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$z
= explode(' ', $_POST['zoekterm']);
$sql = "SELECT * FROM mxp_piloten WHERE achternaam LIKE '%{$z[1]}%' AND voornaam LIKE '%{$z[0]}%' ORDER BY achternaam";
?>
Gewijzigd op 30/03/2006 21:28:00 door
 
Shane Deconinck

Shane Deconinck

30/03/2006 21:43:00
Quote Anchor link
bedankt, dit werkt al goed.

Ik krijg wel nog een notice als er maar 1 woord ingegeven:

Notice: Undefined offset: 1 in /opt/www/deconincks/web/mxp.deconinck-racing.com/pages/zoek.php on line 35

Hoe kan je deze verbergen?

Alvast bedankt voor de query op te bouwen!

Edit:


opgelost dmv if

$z = explode(' ', $_POST['zoekterm']);
if (sizeof($z) > 1)
{
$sql = "SELECT * FROM mxp_piloten WHERE achternaam LIKE '%{$z[1]}%' AND voornaam LIKE '%{$z[0]}%' ORDER BY achternaam";
}
else
$sql = "SELECT * FROM mxp_piloten WHERE achternaam LIKE '%$HTTP_POST_VARS[zoekterm]%' or voornaam LIKE '%$HTTP_POST_VARS[zoekterm]%' ORDER BY achternaam";
Gewijzigd op 30/03/2006 21:49:00 door Shane Deconinck
 

30/03/2006 21:51:00
Quote Anchor link
Kijken met count of de array $z twee elementen bevat (tip: count($z) == 2).
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.