Toon posts:

MYSQL: zoeken met meerdere trefwoorden

Pagina: 1
Acties:
  • 119 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Weet iemand hoe je met php / mysql in een databaseveld kunt zoeken naar meerdere trefwoorden die vanuit een zoekform ingevoerd worden? De trefwoorden moeten gezocht worden in text-database velden.

dus zoiets als:
SELECT product_omschrijving from database WHERE trefwoord(en) voorkomen.

  • dmnq
  • Registratie: Januari 2000
  • Laatst online: 16-09 13:29

dmnq

zonder klinkers

Als je die trefwoorden uit 1 editbox haalt, dan moet je die effe uit elkaar halen en in een array'tje stoppen ofzo. Als je gewoon verschillende editbox'jes gebruikt is het helemaal makkelijk.

Zie hier een stukje sql:
select * from database where product_omschrijving like '%TekstA%' AND product_omschrijving like '%TekstB%';

Hosting (100 MB Harddisk, 1 GB Traffic, 5 POP, MySQL, PHP voor € 3,60 per maand)


Verwijderd

Volgens mij gewoon met LIKE en een zooitje wildcards ('%' voor meerdere karakters, '_' voor een karakter). Dus:

SELECT product_omschrijving
FROM database
WHERE verhaaltje
LIKE '%woord1%woord2%woord3%';

Zoiets. Staat in elk boek over SQL hoor. En natuurlijk de MySQL handleiding.

Succes.

Verwijderd

Topicstarter
Ik snap 't helemaal, maar hoe haal ik verschillende woorden uit een entry box uit elkaar?

  • Nazgul
  • Registratie: Februari 2000
  • Laatst online: 11-10-2022

Nazgul

Digital Pizza Crew

Je kunt het opsplitsen met de functie explode, dus dan krijg je iets als:

code:
1
$termen = explode(' ', $entrybox);

No trees were killed in the sending of this message. However a large number of electrons were terribly inconvenienced.


Verwijderd

$string=explode(" ",$string);

..om een string te 'splitten' bij de spaties.

Verwijderd

Topicstarter
okay het is mij bijna helemaal duidelijk.
Nog een vraagje.

Het is makkelijk om een array te maken met alle woorden (woord[0] woord[1] etc.

Maar hoe kan ik erachter komen hoeveel woorden er zijn?
Heeft Php ook een simpele functie die dat bekijkt?

Verwijderd

Topicstarter
Ik heb het als volgt gedaan:

<?php
$pieces = explode(" ", $invoer);
$aantal = sizeof($pieces);
for ($tel=0; $tel < $aantal; $tel++) {
echo "$pieces[$tel]<br>";
}
?>

handig toch?
Pagina: 1