Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] zapytanie z like
lolus
post 25.03.2006, 09:40:56
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 17.03.2006

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


witam,

  1. <?
  2. include("connect.php");
  3.  
  4. $zapytanie = mysql_query("SELECT * FROM pytania WHERE pytanie LIKE '%$pytanie%'");
  5. $myrow=mysql_fetch_array($zapytanie);
  6. ?>


zmienna $pytanie jest pobierana z formularza, tylko jest problem :/ jesli wpisze w formularzu Ile to z bazy mi dobrze pobiera dane, na pytanie Ile` nie wyswietla nic...

prosze o pomoc!

ps. szukalem na forum o tym, probowalem cos z tym zrobic, ale nic z tego co znalazlem nie rozwiazuje problemu...

Ten post edytował lolus 25.03.2006, 11:30:35
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
TomASS
post 25.03.2006, 11:46:07
Post #2





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Czyli:
  1. SELECT *
  2. FROM pytania
  3. WHERE pytanie LIKE '%Ile%';

Wyświetla rekordy, natomiast:
  1. SELECT *
  2. FROM pytania
  3. WHERE pytanie LIKE '%Ile`%';

już nie. Zapytanie jest jak najbardziej poprawne - może nie masz poprostu w bazie rekordow zawierających Ile`. Swoją drogą to po co ten apostrof?


--------------------
Go to the top of the page
+Quote Post
-Guest-
post 25.03.2006, 11:57:15
Post #3





Goście







"wyechuj" sobie zapytanie, wklej do phpmyadmina i zobaczysz czy Ci coś zwróci. albo skorzystaj z funkcji mysql_error i mysql_errno (wyświetlisz nimi błędy w zapytaniu).
Go to the top of the page
+Quote Post
lolus
post 26.03.2006, 10:24:05
Post #4





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 17.03.2006

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


dawalem mysql_error i nie ma żadnych bledow... bo chodzi mi o uzyskanie takiego czegos co by wyswietlalo dane pytania najbardziej podobnego do wpisanego...
Go to the top of the page
+Quote Post
-penksa-
post 29.03.2006, 07:30:40
Post #5





Goście







przylaczam sie do pytania
Go to the top of the page
+Quote Post
luinnar
post 29.03.2006, 08:50:29
Post #6





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 15.07.2004
Skąd: Bielsko-Biała

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


Jeżeli dobrze rozumiem to user wpisuje jakieś pytanie w formularzu a Ty chcesz wyszukać w bazie pytania najbardziej podobne do tego wpisanego.

W takim przypadku wyszukanie prze LIKE mija się z celem. Ja proponowałbym rozdzielić treść wpisanego pytania na słowa i szukać jakiś słów kluczowych.


--------------------
notDevBlog - devblog.luinnar.com
Go to the top of the page
+Quote Post
lolus
post 29.03.2006, 09:33:10
Post #7





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 17.03.2006

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


Troszkę szerzej bym prosił smile.gif
Go to the top of the page
+Quote Post
luinnar
post 29.03.2006, 09:53:00
Post #8





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 15.07.2004
Skąd: Bielsko-Biała

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


Dobrze do tabeli dodać pole keywords i wstawiać tam słowa kluczowe dla danego pytania np: "Jak wymienić płytę główną?" słowa kluczowe "wymienić, wymiana, płyta, płytę, główna". Tutaj pojawia się pierwszy problem smile.gif mianowicie odmiana słów w języku polskim. można zrobić tak, że w bazie umieszczamy jakieś najczęstsze odmiany (łatwiejsze) bądź umieszczamy tylko niezmienną część słowa (to chyba nazywa się temat ale nie jestem polonistą) i szukamy wg tego (dużo bardziej skomplikowane).

Teraz bierzemy sobie pytanie, które wpisał nasz user. Powiedzmy "Gdzie mam płytę główną w moim komputerze?" (wie że głupie ale to przykład smile.gif) i rozbijamy taki ciąg na słowa (explode" title="Zobacz w manualu php" target="_manual). Zaraz możemy wywalić 1- i 2-literowe wyrazy (w, o, na itp.) można także wyrzucić: "gdzie", "ile", "jak" itp. a reszty szukamy w bazie. Na koniec wyrzucamy znalezione wyniki.

To chyba tyle na szybko.


--------------------
notDevBlog - devblog.luinnar.com
Go to the top of the page
+Quote Post
lolus
post 30.03.2006, 18:44:52
Post #9





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 17.03.2006

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


  1. <?
  2. include("connect.php");
  3.  
  4. $keywords = explode(' ', $pytanie);
  5.  
  6.  
  7. $zapytanie = mysql_query("SELECT * FROM pytania WHERE keywords LIKE '%$keywords%'");
  8. $myrow=mysql_fetch_array($zapytanie);
  9.  
  10. echo "$myrow[odpowiedz]";
  11.  
  12. ?>


dalej nic sad.gif

Ten post edytował lolus 30.03.2006, 18:45:19
Go to the top of the page
+Quote Post
-Guest-
post 11.04.2006, 09:00:03
Post #10





Goście







sorry za podbijanie, ale zalezy mi na odpowiedzi...
Go to the top of the page
+Quote Post
bim2
post 11.04.2006, 12:45:38
Post #11





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


daj str_trplace("'", " ", $keywords) i jak chcesz zeby wywslalo tez np jeslimktos da Ile] to tez daj str_replace tyleze zamiast "'" daj "]" itd winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 02:59