Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyszukiwarka w php, Wyodrębnienie słów
Zosiek
post
Post #1





Grupa: Zarejestrowani
Postów: 140
Pomógł: 22
Dołączył: 1.05.2009
Skąd: Będzin

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


Mam problem z wyszukiwarką. Jak zrobić abym po wpisaniu frazy np. " Strona kontaktowa firmy" wyświetlał mi się wynik do Strony głównej i to strony z kontaktami (niżej widać gdzie są poszczególne słowa). BO normalnie po takim wpisaniu wyświetla mi się, że nie odnaleziono frazy. Przypuszczam, że trzeba tu użyć polecenia
Kod
explode
tylko nie wiem jak i gdzie. Tam także kod formularza do wyszukiwania jakby ktoś chciał skorzystać. (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) I co trzeba dopisać, żeby po wciśnięciu "szukaj" z pustym polem wyświetliło się (nie jako alert w Javascripcie tylko na stronei z wynikami), że nie wpisano żadnej frazy

  1. <?php
  2.  //Otrzymujemy dane
  3.  $sortowanie = $_POST['sort'];
  4.  $phrase = $_POST['phrase'];
  5.  
  6.  
  7.  //Baza
  8.  $database = array(
  9.  'firma, o, nas' => '<a href="about.php">O nas</a> - zobacz kim jesteśmy',
  10.  'Strona główna firmy, ' => '<a href="index.php">Strona główna</a> - Główny opis',
  11.  
  12.  'kontakt,formularz,kontaktowa,mapa,mapka,dojazdu,dojazd' => '<a href="contact.php">Kontakt</a> - skontaktuj się z nami',
  13.  );
  14.  
  15.  //Sortowanie
  16.  if (isSet($phrase) && $phrase != ""){
  17.  if ($sort == 1){
  18.      natsort($database);
  19.      $sorts = "rosnąco";
  20.  }else{
  21.      arsort($database);
  22.      $sorts = "malejąco";
  23.  }
  24.  
  25.  //Wynik
  26.  echo "Poszukiwane słowo:<span>".$phrase.".</span> Wybrano sortowanie:<span> ".$sorts.".\n</span><ol>\n";
  27.  
  28.  //Wyświetlamy wynik wyszukiwania - linki oraz opis
  29.  foreach ($database as $word => $adres){
  30.  if (@eregi(quotemeta($phrase), $word)){
  31.      echo "<li>".$adres."</li>\n";
  32.      $bl = true;
  33.  }}
  34.  
  35.  //Brak
  36.  if (!$bl){
  37.      echo '<li class="lack"><b>Nie znaleziono</b></li><li class="lack">Niestety nie udało nam się odnaleźć wyniku, który mógłby spełnić Twoje kryteria wyszukiwania. Spróbuj ponownie.</li>';
  38.  }}
  39.  
  40.  ?>

  1. <form method="post" action="search.php">
  2. <p><input type="text" value="" name="phrase" size="22"/>
  3. &nbsp;<select name="sort">
  4. <option value="1"'; if($sort==1){echo ' selected="selected"'; } echo '>Sortuj: rosnąco </option>
  5. <option value="0"'; if($sort==0){echo ' selected="selected"'; } echo '>Sortuj: malejąco </option>
  6. &nbsp;<input type="submit" value="Szukaj"/></p>
  7. </form>


Z góry dziękuje za pomoc

Ten post edytował Zosiek 1.05.2009, 12:10:55
Go to the top of the page
+Quote Post
Matte
post
Post #2





Grupa: Zarejestrowani
Postów: 35
Pomógł: 7
Dołączył: 4.04.2009
Skąd: Sosnowiec

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


Co do szukania, masz rację, explode" title="Zobacz w manualu PHP" target="_manual pomoże Ci podzielić słowa, a do przeszukiwania tablic użyj array_key_exists" title="Zobacz w manualu PHP" target="_manual

Cytat
I co trzeba dopisać, żeby po wciśnięciu "szukaj" z pustym polem wyświetliło się (nie jako alert w Javascripcie tylko na stronei z wynikami), że nie wpisano żadnej frazy

  1. <?php
  2. if(count($phrase) == 0)){
  3. $error = true;
  4. }
  5. ?>
Go to the top of the page
+Quote Post
Zosiek
post
Post #3





Grupa: Zarejestrowani
Postów: 140
Pomógł: 22
Dołączył: 1.05.2009
Skąd: Będzin

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


Gdzie umieścić ten explode? (proszę jeśłi możecie to wstawcie już to do kodu wyszukiwarki)
Gdzie umieścić tę funkcję?? (Chyba jest o 1 ")" za dużo)
Cytat
  1. <?php
  2. if(count($phrase) == 0)){
  3. $error = true;
  4. }
  5. ?>


Problem rozwiązany. Temat do zamknięcia.

  1. <?php
  2. //Otrzymujemy dane
  3. $sortowanie = $_POST['sort'];
  4. $phrase1 = $_POST['phrase1'];
  5. $phrase2 = explode(" ",$phrase1);
  6.  
  7.  
  8. //Formularz
  9. echo '<form method="post" name="search" action="search.php">'
  10. .'<p><input type="text" value="'.$phrase1.'" name="phrase1" size="22" />'
  11. .' &nbsp;<select name="sort">'
  12. .'<option value="1"'; if($sort==1){echo ' selected="selected"'; } echo '>Sortuj: rosnąco </option>'
  13. .'<option value="0"'; if($sort==0){echo ' selected="selected"'; } echo '>Sortuj: malejąco </option>'
  14. .'</select>'
  15. .' &nbsp;<input type="submit" value="Szukaj"/></p>'
  16. .'</form>';
  17.  
  18. //Baza
  19. $i=0;
  20. while($i<count($phrase2)) {
  21. $phrase = $phrase2[$i];
  22. $database = array(
  23. 'firma, o, nas, zajmowanie' => '<a href="about.php">O nas</a> - zobacz kim jesteśmy',
  24. 'Witamy' => '<a href="index.php">Strona główna</a> - Główny opis',
  25.  
  26. 'kontakt,formularz,kontaktowy,mapa,mapka,dojazdu,dojazd' => '<a href="contact.php">Kontakt</a> - skontaktuj się z nami',
  27.  
  28. 'cennik,cenniki,zapłata,koszty,ceny' => '<a href="order.php">Wynajmij</a>-Kup/wynajmij ',
  29. );
  30.  
  31. //Sortowanie
  32. if (isSet($phrase) && $phrase != ""){
  33. if ($sort == 1){
  34. natsort($database);
  35. $sorts = "rosnąco";
  36. }else{
  37. arsort($database);
  38. $sorts = "malejąco";
  39. }
  40.  
  41. //Wynik
  42. echo "Poszukiwane słowo:<span>".$phrase.".</span> Wybrano sortowanie:<span> ".$sorts.".\n</span><ol>\n";
  43.  
  44. //Wyświetlamy wynik wyszukiwania - linki oraz opis
  45. foreach ($database as $word => $adres){
  46. if (@eregi(quotemeta($phrase), $word)){
  47. echo "<li>".$adres."</li>\n";
  48. $bl = true;
  49. }}
  50.  
  51. //Brak
  52. if (!$bl){
  53. echo '<li class="lack"><b>Nie znaleziono</b></li><li class="lack">Niestety nie udało nam się odnaleźć wyniku, który mógłby spełnić Twoje kryteria wyszukiwania. Spróbuj ponownie.</li>';
  54. }}
  55. $i++;
  56. $bl = false;
  57. }
  58. ?>

  1. <form method="post" action="search.php">
  2. <p><input type="text" value="" name="phrase1" size="22"/>
  3. &nbsp;<select name="sort">
  4. <option value="1"'; if($sort==1){echo ' selected="selected"'; } echo '>Sortuj: rosnąco </option>
  5. <option value="0"'; if($sort==0){echo ' selected="selected"'; } echo '>Sortuj: malejąco </option>
  6. &nbsp;<input type="submit" value="Szukaj"/></p>
  7. </form>


Ten post edytował Zosiek 4.05.2009, 18:47:59
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: 16.09.2025 - 00:10