MySQL zoeken

Gestart doorTimkb11 reacties36 weergaven

12 berichten · pagina 1 van 1

Timkb

Lid · Topicstarter

Berichten
4.214
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ik ben opzoek naar een script of query die kijkt in een mysql tabel of een veld minstens twee woorden van een string bevat.

Voorbeeldje: De gebruiker typt in: De grote stofzuiger, in MySQL staat een veld met de tekst grote stofzuiger zijn is tof dan moet hij dat veld terug kaatsen.

Het moet uiteraard wel zo werken dat als er meerdere velden zijn met de woorden grote en stofzuiger dat hij ze allemaal terug kaatst.

Ik hoop dat iemand mij kan helpen met de MySQL query (als het in een query mogelijk is) of een script heeft liggen die dit uitvoert.

Alvast bedankt.
0
Thom

Lid

Berichten
10.654
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Dus gewoon een zoekmachine?
0
Berichten
6.485
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Uhm, lijkt me dat dit met regex kan. Dit is alleen een hele inactieve manier van zoekmachine schrijven.

Er zijn zat tuts op internet, heb zelf nog nooit zon uitgebreide geschreven dus ik kan je niet verder helpen dan regex.
0
Timkb

Lid · Topicstarter

Berichten
4.214
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Thommity schreef:
Dus gewoon een zoekmachine?
In feiten wel ja, alleen een wat specificeren dan ik kan vinden op Google.
Rogier schreef:
Uhm, lijkt me dat dit met regex kan. Dit is alleen een hele inactieve manier van zoekmachine schrijven.

Er zijn zat tuts op internet, heb zelf nog nooit zon uitgebreide geschreven dus ik kan je niet verder helpen dan regex.
Regex lijkt me niet werken in MySQL als er bijvoorbeeld een hele tekst omheen staat bijvoorbeeld een lorum ipsum met in het begin stofzuiger en op het eind grote. En je blijft nog zitten met het probleem dat er minimaal twee woorden uit beide string en database veld moeten matchen.
0
Berichten
6.485
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Je kan met REGEX letterlijk alles doen. Dit kan ook zeker ook. Je moet alleen waarschijnlijk een juiste regex code generen.
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Kun je niet gewoon fulltext search gebruiken? (moet je even googlen)
0
Berichten
308
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Je zou aan de hand van kansrekenen, moet je maar eens bekijken. Want kansrekenen is niet simpel...

Maar via kansrekenen(voor dit is het wel simpel) een query opbouwen die alle mogelijke combinaties test.

Vb als je 3 woorden hebt: Ik ben Robbe
* Ik ben Robbe;
* Ik robbe ben;
* Robbe ben ik;
* Robbe ik ben;
* ben ik robbe;
* ben robbe ik;

Snapje ?

toevoeging op 11 december 2012, 22:38:55:
En je query dan:

SELECT * FROM a
WHERE
veld LIKE %Ik ben Robbe% OR veld LIKE %Ik robbe ben ...
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Dat doet fulltext allemaal voor je.
0
Berichten
308
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Lennard schreef:
Dat doet fulltext allemaal voor je.
Ahan, wel kijk weet ik ook iets meer smile
0
Timkb

Lid · Topicstarter

Berichten
4.214
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ik kreeg full-text niet aan het werk maar zoals ik het las was het ook niet wat ik zocht, inmiddels met een PHP manier opgelost.

$tArray = array();
$idArray = array();

while($row = mysql_fetch_array($qry)){
    $idArray[] = $row[id];
    $tArray[] = $row[titel];
}

$keyword = explode( , $_GET[key]);
$i = 0;
$return = ;

foreach ($tArray as &$titel) {
    str_replace($keyword, $keyword, strtolower($titel), $count);
    
    if($count > 1){
        $return .= <a href="#.$idArray[$i].">.$titel.</a>;
    }
    
    $i++;
}
0
Berichten
6.485
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Dat gaat serieus sloom worden.
0
Timkb

Lid · Topicstarter

Berichten
4.214
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Daarom was mijn vraag ook voor een MySQL query die dit kon doen. Het gaat gelukkig maar om een table met +/- 30 records dus zon ramp is het nou ook weer niet.
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren