• Login
  • Register
  • Zoek
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Filebase Entry
  • More Options

ICTscripters

Dé plek voor IT

Dé plek voor IT

Login

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • Beta-testers gezocht voor Crypto-oefenplatform

    Syntax 29 januari 2026 om 16:11
  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Syntax 19 januari 2026 om 09:34
  • Developer Gezocht

    Mikevdk 10 januari 2026 om 18:57
  • Op zoek naar de legends

    Syntax 5 januari 2026 om 13:50
  • [FREE] WeFact Hosting module

    Jeroen.G 13 oktober 2025 om 14:09
  • Help testers nodig voor android app Urgent

    urgentotservices 26 september 2025 om 10:21
  • Versio vervanger

    Jeroen.G 25 augustus 2025 om 15:56
  • Afspraken systeem met planbeperking

    Lijno 1 augustus 2025 om 23:04

Marktplaats

  • 321 Nieuwe Domeinnamen December 2025

    shiga 1 januari 2026 om 10:26
  • Meerdere mafia game template te koop

    Syntax 26 december 2025 om 00:07
  • Van een pixelige afbeelding naar een strakke, moderne website

    Syntax 21 december 2025 om 17:05

Search function SQL

  • C.Steenbakkers
  • 27 maart 2015 om 14:27
  • C.Steenbakkers
    Beginner
    Ontvangen Reacties
    26
    Berichten
    41
    • 27 maart 2015 om 14:27
    • #1

    Goedemiddag,

    Ik ben bezig met het maken van een search function binnen mijn eigen website.

    Je kan op dit moment zoeken op voornamen. (in de database staan de namen met een hoofdletter opgeslagen) Gezien het feit dat namen opgeslagen zijn met een hoofdletter krijg ik niet het gewenst resultaat.

    Zodra ik bijvoorbeeld 'Anja' probeer te zoeken kan dit alleen met 'A', 'An', 'Anj' etc. Maar het lijkt me ook logisch dat ik 'Anja' krijg zodra ik zoek met 'anj' (zonder hoofdletter). Dit gebeurt alleen niet.

    Mijn Query:

    Code
    "SELECT * FROM user WHERE voornaam LIKE '%".$_SESSION['keyword']."%'"


    Kort gezegd:
    - De query die ik momenteel gebruik zoekt hoofdletter gevoelig. Kan dit zo gemaakt worden dat ik met én zonder hoofdletters een gewenst resultaat kan krijgen.


    Alvast bedankt,


    Corné

    I'm just here to read the comments :whistling:

  • Guest, wil je besparen op je domeinnamen? (ad)
  • FangorN
    Professional
    Ontvangen Reacties
    196
    Articles
    2
    Berichten
    737
    • 27 maart 2015 om 14:44
    • #2

    Normaal zijn tekstvergelijkingen zoals LIKE case-insensitive, tenzij je database, tabel of kolom een case-sensitive collation heeft (of je kolom de toevoeging BINARY heeft).

    Je collation geeft aan hoe tekst vergeleken en gesorteerd wordt. Om expliciet een case-insensitive vergelijking te doen geef je dit als volgt aan (er vanuit gaande dat je een utf8 character encoding gebruikt):

    SQL
    SELECT *
    FROM table
    WHERE case_sensitive_column LIKE '%search_term%' COLLATE utf8_general_ci

    Overigens doe je er altijd verstandig aan user input te escapen in je queries met de daarvoor bestemde functie.

    EDIT: voorbeeld

    SQL
    mysql> CREATE TABLE test (
     -> col VARCHAR(255) BINARY NOT NULL
     -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    Query OK, 0 rows affected (0.03 sec)
    mysql> INSERT INTO test(col) VALUES ('blaat');
    Query OK, 1 row affected (0.01 sec)
    mysql> SELECT * FROM test WHERE col LIKE '%BLAAT%';
    Empty set (0.00 sec)
    mysql> SELECT * FROM test WHERE col LIKE '%BLAAT%' COLLATE utf8_general_ci;
    +-------+
    | col   |
    +-------+
    | blaat |
    +-------+
    1 row in set (0.00 sec)
    Toon Meer
  • Tim
    Enlightened
    Ontvangen Reacties
    77
    Berichten
    3.686
    • 27 maart 2015 om 14:57
    • #3

    Andere, maar over het algemeen minder kwalitatieve, oplossingen zijn:

    • Mogelijkerwijs is het voor het systeem sneller om binnen PHP gewoon de eerste letter die uppercasen. Dit is wel nadelig voor de onderhoud en foutgevoelig.
    • Binnen de search query LOWER of UPPER gebruiken. Nadeel is dat dit trager is dan de oplossing van FangorN en je dient de string ook te uppen of te lowren.

    Master student IT-recht en Master student Ondernemingsrecht & software ingenieur
    My Personal profile
    My professional profile (LinkedIn/CV)

  • C.Steenbakkers
    Beginner
    Ontvangen Reacties
    26
    Berichten
    41
    • 27 maart 2015 om 14:59
    • #4

    Bedankt voor je reactie @FangorN.

    Het probleem zat inderdaad in de database. De collatie van de kolom stond op 'utf8_bin' en heb dit veranderd naar 'utf8_general_ci'.

    Citaat van Tim

    Andere, maar over het algemeen minder kwalitatieve, oplossingen zijn:

    • Mogelijkerwijs is het voor het systeem sneller om binnen PHP gewoon de eerste letter die uppercasen. Dit is wel nadelig voor de onderhoud en foutgevoelig.
    • Binnen de search query LOWER of UPPER gebruiken. Nadeel is dat dit trager is dan de oplossing van FangorN en je dient de string ook te uppen of te lowren.

    Hier had ik ook aan gedacht. Dan zou ik veel stukken code moeten veranderen. En een tabel moeten converten (waar alles met een of meerdere hoofdletters er in staat). Iets in me zei dat het makkelijker kon worden opgelost. Het is op de manier van @FangorN gelukt :)


    Corné

    I'm just here to read the comments :whistling:

  • FangorN
    Professional
    Ontvangen Reacties
    196
    Articles
    2
    Berichten
    737
    • 27 maart 2015 om 15:06
    • #5

    Uhm, in het algemeen is het eigenlijk wel oké als een username-kolom (van zich)zelf case-sensitive is, dus ik weet niet of het aanpassen van de kolomdefinitie de beste oplossing is, dat zul je zelf moeten uitmaken (maar houd wel rekening met de consequenties).

    Tenzij je in je login je username IN CAPS wilt kunnen intypen, of in BrEeZaH-stijl.

    Hangt ook een beetje van je query af waarmee logingegevens worden opgehaald, natuurlijk.

    En als de controle bij registratie van nieuwe gebruikers ook case-INsensitive is (ik neem aan dat je gebruikersnamen uniek wilt laten zijn).

    Let dus wel op de gevolgen van dit besluit tot structuurwijziging.

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!

Maak een account aan Login

ICT Nieuws

  • Fijne feestdagen

    tcbhome 28 december 2025 om 13:55
  • Kritieke update voor Really Simple Security-plug-in

    K.Rens 16 november 2024 om 16:12
  • ING Nederland streeft naar ondersteuning van Google Pay tegen eind februari

    K.Rens 2 november 2024 om 16:09

Blogs

  • Functioneel ontwerp

    Dees 28 december 2014 om 12:38
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN 28 december 2018 om 12:35
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN 29 december 2018 om 12:37

Gebruikers die dit topic bekijken

  • 1 Gasten
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacy Policy
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen | Beste Zetes eid kaartlezer webshop
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design