Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Nie poprawnie działające wyszukiwanie.
Rookie
post
Post #1





Grupa: Zarejestrowani
Postów: 130
Pomógł: 1
Dołączył: 1.03.2008
Skąd: Olsztyn

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


Witam,
Wczoraj zrobiłem temat z 3 zagadnieniami (w tym z tym pytaniem), lecz akurat na to nikt nie odpowiedział więc robię do tego oddzielny temat.
Mam plik search.php:
  1. <form action="search.php?" method="GET">
  2. <fieldset style="width: 580px;">
  3. <legend>Szukaj</legend>
  4. <table>
  5. <tr>
  6. <td><input type="text" name="szukaj" style="width: 350px;"></td>
  7. <td><input type="submit" value="Szukaj"></td>
  8. <?php
  9. if(isset($_GET['szukaj'])) {
  10. if(strlen($_GET['szukaj']) < 1) $blad = 'Wpisz szukaną frazę';
  11. $zapytanie="SELECT * FROM filmy WHERE tytul LIKE \"%$szukaj%\"";
  12. $temp=mysql_query($zapytanie) or die("Wystąpił błąd");
  13. $ile=mysql_num_rows($temp);
  14. if ($ile < 1) $blad = 'Nic nie znaleziono';
  15. echo "<td><span style='color: #FF0000'>$blad</span></td>";
  16. }
  17. ?>
  18. </tr>
  19. </table>
  20. </fieldset>
  21. </form>
  22. <?php
  23. if(isset($_GET['szukaj'])) {
  24. $szukaj=mysql_real_escape_string(trim($_GET['szukaj']));
  25. $blad='';
  26. if(strlen($_GET['szukaj']) < 1) $blad = 'Wpisz szukaną frazę';
  27. if($blad=='') {
  28. $zapytanie="SELECT * FROM filmy WHERE tytul LIKE \"%$szukaj%\"";
  29. $temp=mysql_query($zapytanie) or die("Wystąpił błąd");
  30. $ile=mysql_num_rows($temp);
  31. if ($ile > 1) { ?>
  32. <table cellspacing="0" cellpadding="0" border="1" width="100%" style="border-style: none;" align="center" class="trescc">
  33. <tr>
  34. <td valign="top" class="trescc">
  35. <b>Nr</b>
  36. </td>
  37. <td valign="top" class="trescc">
  38. <b>Tytuł</b>
  39. </td>
  40. <td valign="top" class="trescc">
  41. <b>Ilość</b>
  42. </td>
  43. <td valign="top" class="trescc">
  44. <b>Pochodzenie</b>
  45. </td>
  46. <td valign="top" class="trescc">
  47. <b>Typ</b>
  48. </td>
  49. <td valign="top" class="trescc">
  50. <b>Rodzaj/Seria</b>
  51. </td>
  52. </tr>
  53. <tr>
  54. <?php
  55. $mysql=mysql_query("SELECT * FROM `filmy` WHERE `tytul` LIKE \"%$szukaj%\" ORDER by `tytul`") or die (mysql_error());
  56. $nr = 1;
  57. while ($nr <= $ile) {
  58. while($szukane = mysql_fetch_assoc($mysql)) {
  59. echo '
  60. <td valign="top" class="trescc">
  61. '.$nr.'
  62. </td>
  63. <td valign="top" class="trescc">
  64. '.$szukane[tytul].'
  65. </td>
  66. <td valign="top" class="trescc">
  67. '.$szukane[ilosc].'
  68. </td>
  69. <td valign="top" class="trescc">
  70. '.$szukane[pochodzenie].'
  71. </td>
  72. <td valign="top" class="trescc">
  73. '.$szukane[typ].'
  74. </td>
  75. <td valign="top" class="trescc">
  76. '.$szukane[rodzaj].'
  77. </td>
  78. </tr>';
  79. $nr += 1;
  80. }
  81. }
  82. ?>
  83. </table>
  84. <?php
  85. }
  86. }
  87. }
  88. ?>

I wyszukiwanie nie działa poprawnie, po wpisaniu jednej litery od jakiegoś filmu, czasami znajduje filmy z tą literą, lecz po wpisaniu np. "czerwony" od czerwonego października, albo "ekipa", oczywiście od ekipy (IMG:style_emoticons/default/biggrin.gif) , w adresie owszem pokazuje się tak jak powinno
Cytat
?szukaj=ekipa
lecz strona jest tak jakby tego dopisku nie było, gdy wpisze się np. "kjsdbvnjk", jest jak powinno, czyli wyświetla się napis "Nic nie znaleziono", a po wpisaniu ekipa jest tak jakby,m dopiero co otworzył stronę. Co mogę zrobić, żeby było normalnie?
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: 23.08.2025 - 20:32