Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] wyszukiwarka, słowa kluczowe
Sadu2
post
Post #1





Grupa: Zarejestrowani
Postów: 229
Pomógł: 13
Dołączył: 31.05.2007

Ostrzeżenie: (10%)
X----


Witam,

  1. <?php
  2. $keyword=$_REQUEST["keyword"];
  3. $strpass.="&amp;keyword=".$_REQUEST["keyword"];
  4. {
  5. $searchkeyword=str_replace('$', '$',addslashes($_REQUEST["keyword"]));
  6. }
  7. else
  8. {
  9. $searchkeyword=str_replace('$', '$',$_REQUEST["keyword"]);
  10. }
  11. $searchkeyword=trim($searchkeyword);
  12.  
  13. $keyword_arr=explode(" ",$searchkeyword);
  14. foreach($keyword_arr as $key)
  15. {
  16. if($temp_str=="")
  17. {
  18. $temp_str="(title like '%$key%' or description like '%$key%' or keywords like '%$key%') ";
  19. $temp_str1="(companyname like '%$key%' or companyprofile like '%$key%') ";
  20. }
  21. else
  22. {
  23. $temp_str.=" $log_operator (title like '%$key%' or description like '%$key%' or keywords like '%$key%') ";
  24. $temp_str1.=" $log_operator (companyname like '%$key%' or companyprofile like '%$key%' ) ";
  25. }
  26. }
  27. $keyword_str=" and ($temp_str)";
  28. $keyword_str_profile=" and ($temp_str1)";
  29. }
  30. ?>


W dodawaniu wpisu jest miejsce na słowa kluczowe, więc jak wpisze w te miejsce: 'miasto, warszawa' lub 'miasto warszawa' i zapisze, a potem wpisuje w wyszukiwarkę: miasto warszawa to mi nic nie wyskakuje. Jedynie jak wpisze pojedyncze słowa: miasto albo warszawa to działa

Coś chyba tu jest źle sad.gif Pomocy sad.gif

Ten post edytował Sadu2 29.04.2008, 21:44:55
Go to the top of the page
+Quote Post
marcio
post
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


to
  1. <?php
  2. $keyword_arr=explode(" ",$searchkeyword);
  3. ?>

Rozbijac rozbija slowa ale po spacji a nie po przecinku i bierze to jako jeden wyraz

  1. <?php
  2. if($temp_str=="")
  3. ?>

Skad ta zmienna $temp_str nie widze jej nigdzie jesli nie dowidzialem to sorki


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
Sadu2
post
Post #3





Grupa: Zarejestrowani
Postów: 229
Pomógł: 13
Dołączył: 31.05.2007

Ostrzeżenie: (10%)
X----


Aha, czyli jak dodać to po przecinku, żeby działało?

  1. <?php
  2. $keyword_arr=explode(" ",$searchkeyword);
  3. $keyword_arr2=explode(", ",$keyword_arr[0]);
  4. foreach($keyword_arr2 as $key)
  5. {
  6. ...
  7. ?>


Tak powinno działać?

Ten post edytował Sadu2 29.04.2008, 21:52:21
Go to the top of the page
+Quote Post
marcio
post
Post #4





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Cytat(Sadu2 @ 29.04.2008, 22:52:07 ) *
Aha, czyli jak dodać to po przecinku, żeby działało?

  1. <?php
  2. $keyword_arr=explode("", $searchkeyword);
  3. $keyword_arr2=explode(&#092;", \",$keyword_arr[0]);
  4. foreach($keyword_arr2 as $key)
  5. {
  6. ...
  7. ?>


Tak powinno działać?

Nom nie wiem nie znam az tak dobrze tablic ani tych zeczy ale ja bym to tak zrobil
  1. <?php
  2. $keyword_arr=explode(&#092;" \",$searchkeyword);
  3. $ile = count($keyword_arr);
  4. for($i = 0; $i < $ile; $i++) $keyword_arr2=explode(",", $keyword_arr[$i]); // skoro ma rozbic wszystkie wyrazy ale watpie ze to to
  5. foreach($keyword_arr2 as $key) {
  6.  
  7. //i tu reszta
  8.  
  9. }
  10.  
  11. ?>


Mam nadzieje ze nie napisalem zadnych glupot

Albo poprostu sprawdzaj za pomoca strstr()/strpos() czy w ciagiu jest , i jesli jest to rozbijaj za pomoca separatora , a jak nie to spacji

Ten post edytował marcio 29.04.2008, 22:01:37


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
merk
post
Post #5





Grupa: Zarejestrowani
Postów: 30
Pomógł: 7
Dołączył: 31.05.2006

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


Witam, ja bym napisał mniej wiecej tak:

  1. <?php
  2. $keyword = $_REQUEST["keyword"];
  3. $search_keywords = preg_split("/[ ,]/", $keyword, -1, PREG_SPLIT_NO_EMPTY); // rozbijamy string po przecinku oraz po spacji
  4.  
  5. $array1 = array();
  6. $array2 = array();
  7. $temp_str1 = "";
  8. $temp_str2 = "";
  9.  
  10. foreach ($search_keywords as $key) {
  11. $array1[] = "(title like '%$key%' or description like '%$key%' or keywords like '%$key%') ";
  12. $array2[] = "(companyname like '%$key%' or companyprofile like '%$key%') ";
  13. }
  14.  
  15. if (!empty($array1)) {
  16.  $temp_str1 = join ( " AND ", $array1 ); // laczymy tablice - zawsze mozna dac OR
  17. }
  18.  
  19. if (!empty($array2)) {
  20.  $temp_str2 = join ( " AND ", $array2 );
  21. }
  22. ?>


Ten post edytował merk 29.04.2008, 22:13:12


--------------------
Kwatery prywatne
Go to the top of the page
+Quote Post
Sadu2
post
Post #6





Grupa: Zarejestrowani
Postów: 229
Pomógł: 13
Dołączył: 31.05.2007

Ostrzeżenie: (10%)
X----


A dokładnie funkcja split(). Dzięki wielkie.
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 Aktualny czas: 21.08.2025 - 05:38