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
anka_skakanka
post
Post #2





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

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


Cytat(sadistic_son @ 18.03.2011, 16:30:23 ) *
Dalej.... zmienna $wyniki jest tablicą po przypisaniu do niej wyników z explode. Nie możesz jej wrzucić do zapytania.

faktycznie zamotałam się ...
O co chodzi z tym wynikiem z explode?
index.php
  1.  
  2. <h3> Wyszukiwarka </h3>
  3. <ul>
  4. <form name="form1" method="post" action="index.php?wyszukaj&">
  5. <input type="text" name="wyszukaj" size="20">
  6. <input type="submit" name="Submit" value="Szukaj">
  7. </form>
  8. </ul>
  9. (.....)
  10. if ($_POST["Submit"])
  11. {include("szukaj.php"); }

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