Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Wyszukiwanie LIKE
motorolka24
post
Post #1





Grupa: Zarejestrowani
Postów: 90
Pomógł: 0
Dołączył: 21.04.2007

Ostrzeżenie: (0%)
-----


Witam. Czy jest możliwość wyszukiwania w bazie danych z użyciem LIKE w polu w którym występują znaczniki html'owe? Chodzi o to żeby przy tym wyszukiwaniu pominąć te znaczniki.


Czy ma ktoś pomysł jak to można zrobić(IMG:style_emoticons/default/questionmark.gif) Jedynym z rozwiązań jest trzymanie w osobnej kolumnie tabeli tego tekstu bez znaczników htmla tylko że w takiej sytuacji mamy w bazie danych nadmiarowe dane (IMG:style_emoticons/default/sad.gif) no i to raczej odpada

Ten post edytował motorolka24 11.01.2011, 00:42:19
Go to the top of the page
+Quote Post
sadistic_son
post
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Generalnie to czemu nie. Znaczników nie masz przecież (chyba) w połowie słowa więc wystarczy podmienić spacje na % i gotowe.
Dla przykładu jeśli w bazie masz '<b>ala<i><br />ma kota</span>' to jeśli ktoś wpisze w wyszukiwaniu 'ala ma kota' zrób coś w tym stylu:
  1. $szukany=str_replace(' ','%',$_POST['wyszukaj']);
  2. $sql="SELECT * FROM tabela WHERE pole LIKE '%$szukany%'";
Alternatywnie, co będzie raczej bardzo nieoptymalne mógłbyś wczytać do tablicy wszystkie pary id+szukane pole, następnie wszystkie szukane pola potraktować strip_tags i następnie wyszukać interesujący Cię string w tej tablicy:
  1. $sql="SELECT id, pole FROM tabela";
  2. $res=mysql_query($sql);
  3. $tab=array();
  4. $i=0;
  5. while($r=mysql_fetch_array($res)){
  6. $no_html=strip_tags($r['pole']);
  7. if($no_tags==$_POST['wyszukaj']){
  8. $tab[$i]=$r['id'];
  9. $i++;
  10. }
  11. }
  12. print_r($tab); //zwroci tablice z id rekordow ktore spelniaja kryteria wyszukiwania
Nalezy jednak pamietac ze strp_tags dziala tylko dla poprawnych tagow czyli nie usunie ze stringu np czegos takieg <i > lub <br> bo poprawne sa <i> oraz <br />.

Ten post edytował sadistic_son 11.01.2011, 08:34:27
Go to the top of the page
+Quote Post
motorolka24
post
Post #3





Grupa: Zarejestrowani
Postów: 90
Pomógł: 0
Dołączył: 21.04.2007

Ostrzeżenie: (0%)
-----


ale jak już dla pierwszej opcji wpisze tekst br to mi zwróci rekord a nie powinien (IMG:style_emoticons/default/sad.gif) . Druga opcja odpada
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 12:15