Woorden zoeken in query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Lano heeren

Lano heeren

21/09/2017 20:04:51
Quote Anchor link
Beste forum lezers/helpers,
Wie kan mij helpen met een mysqli query? ik geef bijvoorbeeld de letters a.p.g.a.k.l. in, en dan is het de bedoeling dat de query de woorden zoekt met de letters die ik heb ingevoerd. Dat mogen 3, 4,5, of 6 letterwoorden zijn. de woorden staan uiteraard al in de database.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sql
= $mysqli->query("SELECT * FROM woorden en dan?");
?>

- Ariën -:
Titel aangepast van 'Hulp bij query' naar 'Woorden zoeken in query'. gelieve in het vervolg een duidelijke titel op te geven die je probleem en/of vraagstelling aanduidt.
Gewijzigd op 21/09/2017 20:14:31 door - Ariën -
 
PHP hulp

PHP hulp

27/04/2024 02:14:16
 
Adoptive Solution

Adoptive Solution

21/09/2017 20:40:43
Quote Anchor link
Zoek elke letter in een woord :

https://www.w3resource.com/mysql/string-functions/mysql-substring-function.php

Bijvoorbeeld

WHERE (letter a in woord) & (letter p in woord) & (letter g in woord)

En dat voor elke letter combinatie van 3,4,5 en 6 letters.

Als de letters ook nog een aanelkaar gezocht moeten worden heb je met 6 letter al 720 mogelijkheden.

1*2*3*4*5*6

Ongetwijfeld zullen er briljante oplossingen zijn, maar die kan ik zou gauw niet bedenken.
 
Rob Doemaarwat

Rob Doemaarwat

21/09/2017 22:25:55
Quote Anchor link
In MySQL kun je tegenwoordig ook met regex-en aan de slag: https://dev.mysql.com/doc/refman/5.7/en/regexp.html

Dus dan wordt het iets van
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM woorden WHERE woord REGEXP '^[apgakl]{3,6}$'
Gewijzigd op 21/09/2017 22:27:08 door Rob Doemaarwat
 
Lano heeren

Lano heeren

21/09/2017 22:47:01
Quote Anchor link
Bedankt Rob, hier kan ik mee verder!
Edit: toch nog een vraagje, de query mag elke letter die ik heb ingevoerd maar 1 keer gebruiken. bv de letters: obm, geeft de query terug bom, boom. bom is goed maar boom niet dat woord heeft twee o's.
Gewijzigd op 21/09/2017 22:58:22 door Lano heeren
 
Rob Doemaarwat

Rob Doemaarwat

22/09/2017 07:02:17
Quote Anchor link
Dan zul je per letter nog een extra controle toe moeten voegen (voorbeeld voor de letter 'o')
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
... AND woord REGEXP '^[^o]*(o?[^o]*){0,1}$'

Met die laatste '{0,1}' kun je aangeven hoe vaak de letter voor mag/moet komen (min/max). Voor de 'a' uit 'apgakl' zul je hier dus {0,2} moeten gebruiken.
 
Lano heeren

Lano heeren

22/09/2017 11:06:43
Quote Anchor link
Nogmaals bedankt Bob, ik ga ermee aan de slag.
 



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.