Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] wadliwa wyszukiwarka, po zmianie serwera
LukasTe
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 29.08.2009

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


witam,
zmieniłem serwer i wyszukiwarka rekordów z MySQL wyświetla za kazdym razem wszystkie rekordy co by się nie wpisało. Wcześniej było wszystko dobrze. Wrzucam kod pliku search.php

  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  4. <link rel="stylesheet" type="text/css" href="arkusz.css" />
  5. <body>
  6. <?php
  7. /*
  8.   połączenie z bazą sobie darujemy
  9.   opisane jest ono w tej poradzie
  10.   <a href="http://www.kess.com.pl/?sid=10&pid=32" target="_blank">http://www.kess.com.pl/?sid=10&pid=32</a>
  11. */
  12. // podłączamy plik connection.php
  13. require "connection.php";
  14. // wywołujemy funkcję connection()
  15. connection();
  16.  
  17. mysql_query("SET NAMES 'utf8'");
  18. mysql_query("SET collation_connection = utf8_general_ci;");
  19. mysql_query("/*!40101 SET character_set_results = NULL */;");
  20.  
  21. /* zapytanie do konkretnej tabeli */
  22. $wyniki=explode(" ",$search);
  23. $warunki=" (nazwa LIKE '%$wyniki[0]%' || nazwa LIKE '%$wyniki[0]%' || nazwa LIKE '%$wyniki[0]%')";
  24. for ($i=1;$i<count($wyniki);$i++)
  25. {
  26. $warunki.=" and (nazwa LIKE '%$wyniki[$i]%' || nazwa LIKE '%$wyniki[$i]%' || nazwa LIKE '%$wyniki[$i]%')";
  27. }
  28. $query="SELECT * FROM lista WHERE $warunki ";
  29. $result = MYSQL_QUERY($query);
  30.  
  31. /*
  32. wyświetlamy wyniki, sprawdzamy,
  33. czy zapytanie zwróciło wartość większą od 0
  34. */
  35. if(mysql_num_rows($result) > 0) {
  36. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  37. echo "<div align='center'>";
  38. echo "<table>";
  39. while($r = mysql_fetch_assoc($result)) {
  40. echo "<tr>";
  41. echo "<td class='wiersz1'>".$r['nazwa']."</td>";
  42. echo "<td class='wiersz2'>".$r['rodzaj']."</td>";
  43. echo "<td class='wiersz3'><a target='_blank' href=".$r['link'].">Kliknij</a></td>"; }
  44. echo "</tr>";
  45. echo "</table>";
  46. }
  47.  
  48. ?>
  49. </body>
  50. </head>
  51. </html>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
LukasTe
post
Post #2





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 29.08.2009

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


Wrzuciłem ten sam plik szukaj.php na stary serwer i już wyświetla normalnie np.
  1. SELECT * FROM lista WHERE (nazwa LIKE '%gta%' || nazwa LIKE '%gta%' || nazwa LIKE '%gta%') array(1) { [0]=> string(3) "gta" }

A jest to samo.. ja dokładnie nie znam się jak przeanalizować każdą część kodu, liste tworzyłem już dawno głownie opierając się na gotowcach z sieci i teraz mam problem cokolwiek w niej zrobić..

A już wiem o które search chodzi. Jest w wyszukiwarce tak:
  1. <center><table>
  2. <form name="form1" method="post" action="index.php?strona=szukaj">
  3. <tr>
  4. </tr>
  5. <tr>
  6. <td>
  7. <input type="text" name="search" size="25"
  8. </td>
  9. <td>
  10. <input type="submit" name="Submit" value="Szukaj>>">
  11. </td>
  12. </tr>
  13. </form>
  14. </table></center>

I powinno pobierać z pola w które sie wpisuje jednak tego nie robi. Doszukuje się różnic na serwerach, w bazach i nic. Nic mi nie przychodzi do głowy, czemu się tak dzieje.. zapytania np. na litery alfabetu lub wg rodzaju wyświetla tu i tu poprawnie.
Może moge jakis inny rodzaj wyszukiwania zastosować?
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: 15.10.2025 - 03:33