Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]wyszukiwarka, w momencie gdy pusty forularz ładuje sie pusta strona a nie komunikat
anka_skakanka
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 2.03.2011

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


Witam, zrobiłam wyszukiwarkę na bazie typu INNOdb a więc bez full-textu.. W momencie gdy kliknę w przycisk "szukaj" są opcje:
1. wprowadzono słowo, jest w bazie --> wyświetla je
2. wprowadzono słowo, nie ma w bazie --> komunikat
3. nic nie wprowadozno --> komunikat
No i w tym momencie 1wsze opcje działają a 3cia sie sypie tzn. zamisat komunikatu "w celu korzystania z wyszukiwarki treba coś wpisać" pojawia sie pusta strona ... wszytsko działa dobrze dopóki nie jest podpięte do diva ...
w pliku index. php mam formularz
  1. <div id="left">
  2. <h3> Wyszukiwarka </h3>
  3. <!--menu po lewej - wyszukiwarka-->
  4. <ul>
  5. <form name="form1" method="get" action="index.php?wyszukaj&">
  6. <input type="hidden" name="wyszukaj" value="TRUE" />
  7. <input type="text" name="wyszukaj" size="20">
  8. <input type="submit" name="Submit" value="Szukaj">
  9. (itd)
  10. if ($_GET["wyszukaj"])
  11. {include("szukaj.php"); }
  12. </form>
  13. </ul>
  14. <br>


w pliku szukaj php
  1. <body>
  2. <h2>Wyniki wyszukiwania</h2>
  3. <?php
  4. // program wyszukiwarki - SZUKAJ.php
  5. if (($_GET['wyszukaj'])) {
  6. $szukaj =$_GET['wyszukaj'];
  7. $szukaj=trim($_GET['wyszukaj']); // usunięcie niepotrzebnych spacji
  8. // sprawdzenie, czy użytkownik cokolwiek wpisał
  9. if ($szukaj!= &#8216;’{ // if ($szukaj!= ‘’) {
  10. include("config.php"); // połączenie z bazą danych
  11. /* Like - pozwala wyszukać dany ciąg w bazie danych % - symbolizuje dowolny inny ciąg znaków
  12. or pozwoli wyszukiwać usługę w nazwie */
  13. $pytanie_p = mysql_query("Select * From uslugi Where nazwa_uslugi Like '%".$szukaj."%'")
  14. or die ('błąd zapytania'); // zapytanie do bazy
  15. $liczba_rekordow = mysql_num_rows($pytanie_p);
  16. if ($liczba_rekordow==0) {
  17. echo "Brak wyników dla wyszukianej frazy ".$szukaj."";
  18. }
  19. else {
  20. echo "Wyszukiwanie znalazło ".$liczba_rekordow." pasujących wyników
  21. do szukanego wyrażenia <strong>".$szukaj." </strong><br><br>";
  22. echo "<table cellpadding=\"2\" border=1>";
  23. print ('<tr>');
  24. print ('<th>Nazwa usługi</th>'); print ('<th>Opis usługi</th>'); print('<th> Cena w zakładzie</th>');
  25. print ('</tr>');
  26. while($rekord_p = mysql_fetch_array($pytanie_p))
  27. {
  28. echo "<tr>";
  29. echo "<td>".$rekord_p['nazwa_uslugi']."</td>";
  30. echo "<td>".$rekord_p['opis_uslugi']."</td>";
  31. echo "<td>".$rekord_p['cena_w_zakladzie']."</td>";
  32. print ('</tr>');
  33. } //koniec while
  34. print ('</table>');
  35. } //koniec else wyszukiwanych fraz
  36. }
  37. } //konief if getwyszukaj
  38. else {
  39. echo "Należy coś wpisac by skorzystać z wyszukiwarki!";
  40. }
  41. ?>

Są jakieś pomysły na rozwiązanie ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
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%)
-----


Tak, hasła do bazy wysyła się zahashowane algorytmem np. md5. Nie radzę tego robić z pozostałymi danymi (IMG:style_emoticons/default/wink.gif) Jak raz coś przepuścisz przez md5 lub sha1 to już tego nie odszyfrujesz.

Cytat
ak dobrze to rozumiem to pwoinno mi przy ciagu męskie strzyżenie odszukać wszystkie rekordy które mają słowo strzyżenie lub męskie ..
Dobrze rozumiesz, teraz tak to zadziała:
  1. <h2>Wyniki wyszukiwania</h2>
  2. <?php
  3. if (isset($_POST['wyszukaj'])) {
  4. $szukaj =$_POST['wyszukaj'];
  5.  
  6. if ($szukaj!= '') { // sprawdzenie, czy użytkownik cokolwiek wpisał
  7.  
  8.  
  9. $szukaj=mysql_real_escape_string(trim($szukaj));
  10.  
  11. $wyniki=explode(" ",$szukaj);
  12. $warunki=" (nazwa_uslugi LIKE '%$wyniki[0]%' )";
  13.  
  14. for ($i=1;$i<count($wyniki);$i++) {
  15. $warunki.=" OR (nazwa_uslugi LIKE '%$wyniki[$i]%') ";
  16. }
  17. include("config.php"); // połączenie z bazą danych
  18. $pytanie_p = mysql_query("Select * From uslugi Where $warunki") or die('Invalid query: ' . mysql_error());
  19. $liczba_rekordow = mysql_num_rows($pytanie_p);
  20. if ($liczba_rekordow==0) {
  21. echo "<br><p>Brak wyników dla wyszukianej frazy <strong>".$szukaj." </strong> </p>";
  22. }
  23. else {
  24. echo " <br><p>Wyszukiwanie znalazło ".$liczba_rekordow." pasujących wyników
  25. do szukanego wyrażenia <strong>".$szukaj." </strong> </p><br>";
  26. echo "<table cellpadding=\"2\">";
  27. print ('<tr>');
  28. print ('<th>Nazwa usługi</th>'); print ('<th>Opis usługi</th>'); print('<th> Cena w zakładzie</th>');
  29. print ('</tr>');
  30. while($rekord_p = mysql_fetch_array($pytanie_p)) {
  31. echo "<tr>";
  32. echo "<td>".$rekord_p['nazwa_uslugi']."</td>";
  33. echo "<td>".$rekord_p['opis_uslugi']."</td>";
  34. echo "<td>".$rekord_p['cena_w_zakladzie']."</td>";
  35. print ('</tr>');
  36. } //koniec while
  37. print ('</table>');
  38. } //koniec else wyszukiwanych fraz
  39. }
  40. else {
  41. echo "<br><p>Należy coś wpisać by skorzystać z wyszukiwarki! </p>";
  42. }
  43. }
  44. ?>


Ten post edytował sadistic_son 18.03.2011, 19:29:33
Go to the top of the page
+Quote Post

Posty w temacie


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: 18.10.2025 - 03:58