Ok jongens probleem opgelost code werkt wel... Het is weer typisch een vorm van 2 uur naar je scherm staren en het typfoutje wat je hebt gemaakt niet meer zien! Ik had de voor en achternaam in de verkeerde volgorde geplaatst..... Ik geef de correcte sql query zodat anderen er misschien van kunnen leren!! Groeten.
Hallo,
Ik heb het volgende probleem. Ik moet gebruikers zoeken in mijn tabel en ze terug geven. Je kan gebruikers zoeken op voornaam, achternaam en voor en achternaam. Ik heb één textveld waar je de zoekquery in moet vullen. Dus een gebruiker hierin alleen de voornaam, alleen de achternaam, voor en achternaam, achternaam en voornaam opgeven. Ik heb de volgende tabel met contactgegevens van verschillende gebruikers.
nu heb ik een query:
Deze query geeft alle results terug waar in de voornaam of achternaam een a in zit. Dit is correct.
Nu wil ik de query uitbreiden. Nu wil de gebruiker de "Admin Person" zoeken. Als ik de bovenstaande query uit voer heb ik een probleem dat wanneer hij de "Admin P" heeft getypt geen results meer op leverd. Dit klopt ook want de query zal geen waarde terug geven. Nu weet ik dat je met CONCAT strings kan mergen in een sql query.
nu wil ik de volgende sql query uitvoeren.
Bovenstaande code laat contact_id 1 en 6 zien. (Correct)
Maar als ik "Admin P" typ geeft hij geen waardes meer terug. (Dit is mijn probleem)
Ik wil ook maken dat de gebruiker op "Person A" kan zoeken.
Hoe maak ik een query waarin sql ook kan zoeken op voor en achternaam die in één string zitten?
Ik heb nu 4 uur lopen zoeken en ik schakel maar even een hulplijntje in. Als er vragen of onduidelijkheden zijn graag posten.
Alvast bedankt voor de hulp.
Oh edit: ik draai Apache2 met MySQL 5.0.45, PHP5.
Groeten,
Antek
code:
1
2
3
4
5
6
7
| select contact_id,contact_first_name,contact_last_name from contacts
where
contact_first_name LIKE '%admin p%'
OR contact_last_name LIKE '%admin p%'
OR LCASE(CONCAT(contact_first_name,' ',contact_last_name)) like LCASE('%admin p%')
OR LCASE(CONCAT(contact_last_name,' ',contact_first_name)) like LCASE('%admin p%')
order by contact_first_name |
Hallo,
Ik heb het volgende probleem. Ik moet gebruikers zoeken in mijn tabel en ze terug geven. Je kan gebruikers zoeken op voornaam, achternaam en voor en achternaam. Ik heb één textveld waar je de zoekquery in moet vullen. Dus een gebruiker hierin alleen de voornaam, alleen de achternaam, voor en achternaam, achternaam en voornaam opgeven. Ik heb de volgende tabel met contactgegevens van verschillende gebruikers.
code:
1
2
3
4
5
6
7
8
| id contact_first_name contact_last_name 1 Admin Person 2 test Gebruiker 3 Manager M 4 Worker W 5 AA AA 6 Admin test 7 Test Person |
nu heb ik een query:
code:
1
2
3
4
| select contact_id,contact_first_name,contact_last_name from contacts where contact_first_name LIKE '%a%' OR contact_last_name LIKE '%a%' |
Deze query geeft alle results terug waar in de voornaam of achternaam een a in zit. Dit is correct.
Nu wil ik de query uitbreiden. Nu wil de gebruiker de "Admin Person" zoeken. Als ik de bovenstaande query uit voer heb ik een probleem dat wanneer hij de "Admin P" heeft getypt geen results meer op leverd. Dit klopt ook want de query zal geen waarde terug geven. Nu weet ik dat je met CONCAT strings kan mergen in een sql query.
code:
1
2
3
4
5
6
7
8
9
10
11
12
| SELECT CONCAT( contact_first_name, ' ', contact_last_name ) AS Users FROM `contacts` laat de volgende tabel zien. contact_id Users 1 Admin Person 2 test Gebruiker 3 Manager M 4 Worker W 5 AA AA 6 Admin test 7 Test Person |
nu wil ik de volgende sql query uitvoeren.
code:
1
2
3
| select c.contact_id,c.contact_first_name,c.contact_last_name
from contacts as c
where LCASE(CONCAT(c.contact_last_name,' ',c.contact_first_name)) like LCASE('%admin%') |
Bovenstaande code laat contact_id 1 en 6 zien. (Correct)
code:
1
2
3
| select c.contact_id,c.contact_first_name,c.contact_last_name
from contacts as c
where LCASE(CONCAT(c.contact_last_name,' ',c.contact_first_name)) like LCASE('%admin p%') |
Maar als ik "Admin P" typ geeft hij geen waardes meer terug. (Dit is mijn probleem)
Ik wil ook maken dat de gebruiker op "Person A" kan zoeken.
Hoe maak ik een query waarin sql ook kan zoeken op voor en achternaam die in één string zitten?
Ik heb nu 4 uur lopen zoeken en ik schakel maar even een hulplijntje in. Als er vragen of onduidelijkheden zijn graag posten.
Alvast bedankt voor de hulp.
Oh edit: ik draai Apache2 met MySQL 5.0.45, PHP5.
Groeten,
Antek
[ Voor 12% gewijzigd door xTmPizzaMan op 31-10-2007 11:45 ]
No sig!