Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyszukiwarka
Forum PHP.pl > Forum > PHP
mrm
witam, planuja napisac wyszukiwarke ktora bedzie korzystac z bazy mysql, jesli chodzi o samo zapytanie w SQL to raczej nie widze problemu (WHERE = , LIKE ,etc). Mam natomiast problem z podzieleniem zapytania(słow kluczowych)

Mechanizm jest taki:
1 - internauta wpisuje w polu tekstowym szukany ciag slow,
2 - ciag ten zostaje podzielony
3- nastepnie zostaje wyslane zapytanie do BD

Czyli mam problem z pkt 2.

jesli internauta wpisze "php forum manual" to chcialbym otrzymac tablice z elementami 3 elemantami (php,forum, manual) otrzymuje to
  1. <?php
  2. $towar = explode(" ", $asortment) 
  3. foreach ($towar as $wartosc) {
  4.  $szukane[]=$wartosc;
  5.  echo "Wartość: $wartosc<br>n";
  6. }
  7. ?>

jesli internauta wpisze "php,forum,manual" to chcialbym otrzymac tez tablice z 3 elemantami, kod php jest prawie taki sam jak wyzej wiec nie ma problemu

Problem pojawia sue gdy internauta wpisze:
"php, forum linux, html maual, pear ------[roznej wielkosci odstepy]----- smarty" wtedy moje mechanizmy nie dzialaja tak jakbym chcial a chcialbym w takim przypadku otrzymac tablice 7 elementowa z elementami (php, forum,linux ...itd)

z gory dzieki za pomoc, (moze istanieje jakis inny lepszy mechanizm wyszukiwania)
nospor
zamien najpierw przecinki na spacje (str_replace()) a potem zrob explode po spacjach smile.gif

edit: albo baw sie wyrazeniami regularnymi
heaven
chyba można mniejwiecej tak:

  1. <?php
  2. preg_match_all('/([0-9a-z±ˇćĆęĘłŁńŃóÓ¶¦żŻĽ¬]+)/i','słowa  , do, ---- wyszukiwania  ',$wynik);
  3. var_dump($wynik[1]);
  4. ?>


array
0 => 'słowa' (length=5)
1 => 'do' (length=2)
2 => 'wyszukiwania' (length=12)


możesz dopisać do wyrazenia inne znaki interpretowane jako słowo kluczowe a nie ich oddzielacz
To jest wersja lo-fi głównej zawarto¶ci. Aby zobaczyć pełn± wersję z większ± zawarto¶ci±, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.