Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][SQL] Wyszukiwarka
krzychu0808
post
Post #1





Grupa: Zarejestrowani
Postów: 428
Pomógł: 2
Dołączył: 1.04.2007
Skąd: Pogorzelica

Ostrzeżenie: (10%)
X----


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
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Spawnm
post
Post #3





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




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. ?>
Go to the top of the page
+Quote Post
krzychu0808
post
Post #4





Grupa: Zarejestrowani
Postów: 428
Pomógł: 2
Dołączył: 1.04.2007
Skąd: Pogorzelica

Ostrzeżenie: (10%)
X----


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. ?>
Go to the top of the page
+Quote Post
piotrooo89
post
Post #5


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




toż to się inaczej robi....

$podstawa=$_POST[podstawa];


--------------------
Go to the top of the page
+Quote Post
krzychu0808
post
Post #6





Grupa: Zarejestrowani
Postów: 428
Pomógł: 2
Dołączył: 1.04.2007
Skąd: Pogorzelica

Ostrzeżenie: (10%)
X----


hehe bez tego też działa ale zmieniłem, co zorbić aby jak wpiszę z małej litery panel to mi wyświetli Panel
Go to the top of the page
+Quote Post
Spawnm
post
Post #7





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




np:
http://pl.php.net/manual/pl/function.ucfirst.php

Ten post edytował Spawnm 19.11.2008, 21:32:08
Go to the top of the page
+Quote Post
piotrooo89
post
Post #8


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




możesz zastosować ucfirst do tego żeby zmienić 1 literę na dużą.


--------------------
Go to the top of the page
+Quote Post
krzychu0808
post
Post #9





Grupa: Zarejestrowani
Postów: 428
Pomógł: 2
Dołączył: 1.04.2007
Skąd: Pogorzelica

Ostrzeżenie: (10%)
X----


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?
Go to the top of the page
+Quote Post
Spawnm
post
Post #10





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




http://pl2.php.net/manual/pl/function.strtolower.php

strtolower ( $str )

zamienia wszystko na małe litery smile.gif
Go to the top of the page
+Quote Post
zegarek84
post
Post #11





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


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


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 06:57