Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][SQL] Wyszukiwarka
Forum PHP.pl > Forum > Przedszkole
krzychu0808
Witam... napisałem wyszukiwarkę na stronę i mam problem bo jak mam tytuł np. Panel i wpiszę w wyszukiwarkę "panel" to nie znajduje ale jak wpiszę "Panel" z dużej litery to znajduje mam też problem z polskimi literami jak wpisze jakąś polską literę np. ą to mam error:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\tutki\wyszukiwarka.php on line 27
linia 27:
  1. <?php
  2. $ilosc = mysql_num_rows($wykonaj);
  3. ?>


cała wyszukiwarka:
  1. <form action="wyszukiwarka.html" method="post">
  2. Wyszukiwarka <br>
  3. <select name="podstawa">
  4. <option value="nazwa">Nazwa Tutoriala
  5. <option value="user_name">Nazwa Użytkownika
  6. <option value="tresc">Treść
  7. </select>  
  8.  
  9. <input name="haslo" type=text>
  10. <input class="winput" type="hidden" name="form_wyslany" value="1">    
  11. <input type=submit value="Szukaj">
  12. </form>
  13.  
  14. <?
  15. if($_POST[form_wyslany]){
  16.    if (empty($_POST['haslo']))
  17.    {
  18.      echo  '<br/><br/>- Wpisz Słowo Kluczowe do wyszukiwarki<br/>';
  19.      $error=1;
  20.    }
  21. }
  22. if($_POST[form_wyslany] && !$error){
  23. $zapytanie = "SELECT * FROM tutki where status=3 and $podstawa like '%".$haslo."%'";
  24. $wykonaj = mysql_query ($zapytanie);
  25. $ilosc = mysql_num_rows($wykonaj);
  26. echo "Znaleziono: $ilosc";
  27. echo '<br/><br/>';
  28. if ($ilosc>0) {
  29. echo "<table>";
  30. while($tutorial = mysql_fetch_array($wykonaj))
  31. {
  32.    echo "<tr>";
  33.    echo "<td><img src=\"$tutorial[mini]\"></td>";
  34.    echo "<td><a href=\"tutorial,$tutorial[id].html\" class=\"link3\">$tutorial[nazwa]</a>
  35.    <br/>
  36.    $tutorial[opis]
  37.    </td>";
  38.    echo "</tr>";
  39. }
  40. echo "</table>";
  41.  
  42. }
  43. else { echo "- Nie znaleziono"; }
  44. }
  45. ?>


Proszę o pomoc
erix
Masz nieprawidłowe zapytanie.

  1. <?php
  2. $zapytanie = "SELECT * FROM tutki where status=3 and $podstawa like '%".$haslo."%'";
  3. ?>

Skąd Ci się bierze $podstawa?
Spawnm
może jestem slepy ale chyba nie ma nigdzie wcześniej $podstawa ...
linia 24
  1. <?php
  2. $zapytanie = "SELECT * FROM tutki where status=3 and $podstawa like '%".$haslo."%'";
  3. ?>
krzychu0808
4 linia

  1. <?php
  2. <select name="podstawa">
  3. <option value="nazwa">Nazwa Tutoriala
  4. <option value="user_name">Nazwa Użytkownika
  5. <option value="tresc">Treść
  6. </select>
  7. ?>
piotrooo89
toż to się inaczej robi....

$podstawa=$_POST[podstawa];
krzychu0808
hehe bez tego też działa ale zmieniłem, co zorbić aby jak wpiszę z małej litery panel to mi wyświetli Panel
Spawnm
np:
http://pl.php.net/manual/pl/function.ucfirst.php
piotrooo89
możesz zastosować ucfirst do tego żeby zmienić 1 literę na dużą.
krzychu0808
hmmm a dało by się zrobić aby on np. całą treść bazy danych czytał w małych literach i słowa kluczowe zamieniał na małe i wtedy sprawdzał questionmark.gifquestionmark.gif lub ma ktoś jakieś inne rozwiązanie questionmark.gifquestionmark.gif?
Spawnm
http://pl2.php.net/manual/pl/function.strtolower.php

strtolower ( $str )

zamienia wszystko na małe litery smile.gif
zegarek84
przejrzałem pobieżnie a nie czytaęłm ale wyszukiwarkę masz w zapytaniu sql więc małe litery raczej chcesz porównać w zapytaniu sql... i tu wchodzi funkcja LCASE()
czyli przykąłdowo jeśli Twoje zapytanie wyglądało:
Cytat
SELECT * FROM tutki where status=3 and $podstawa like '%".$haslo."%'

to powinno mniej więcej wyglądać tak:
  1. "SELECT * FROM tutki where status=3 and LCASE($podstawa) like '%".$haslo."%'"

lub (wszystko zależy od konfiguracji serwera (ja zmienne wprowadzam "normalnie" do zapytań ale widzę że tutaj pasuje tak jak do ciągów tekstowych):
  1. "SELECT * FROM tutki where status=3 and LCASE(".$podstawa.") like '%".$haslo."%'"

oczywiście zmienną hasło wcześniej tez zamień pod php na małe litery ;p

pozdro
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.