Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][HTML]Problem z LIKE
piotrooo89
post
Post #1


Newsman


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




Mam taki problem z like tzn nie wyszukuje ani nie zwraca błędów:

  1. <?php
  2. $co = $_GET['sz'];
  3. $find = "%$co%";
  4.  
  5. $sql = mysql_query("SELECT * FROM nazwy WHERE nazwa LIKE '".$find."'");
  6.  
  7. echo '<table class="pokaz">
  8. <tr>
  9. <td class="pokaz"><strong>Numer</strong></td>
  10. <td class="pokaz"><strong>Nazwa</strong></td>
  11. </tr>';
  12.  
  13. while ($linia = mysql_fetch_array($sql))
  14. {
  15. echo '<tr onMouseover=this.bgColor="#00FFFF" onMouseout=this.bgColor="">
  16. <td class="pokaz">' . $linia['nr'] . '</td>
  17. <td class="pokaz">' . $linia['nazwa'] . '</td>
  18. <td class="pokaz"><a href="edytuj.php?edytuj=' .$linia['id']. '&nazwa=' .$linia['nazwa']. '&nr=' .$linia['nr']. '" class="pokaz">Edytuj</a></td>
  19. </tr>';
  20. }
  21. ?>


Ten post edytował piotrooo89 28.05.2008, 21:39:49


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
AxZx
post
Post #2





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


mozesz sam sprawdzic co jest nie tak

print_r($_GET['sz']);
print_r($find);
print_r("SELECT * FROM nazwy WHERE nazwa LIKE '".$find."'");
print_r("SELECT * FROM nazwy WHERE nazwa LIKE '".$find."'");

mozesz tez skorzystac z mysql query browser badz phpmyadmin i tam wkleic to zapytanie.


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
empathon
post
Post #3





Grupa: Zarejestrowani
Postów: 246
Pomógł: 31
Dołączył: 13.11.2006
Skąd: się znamy?

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


Eh
Nagłówek tabli definiuje się tak:
  1. <tr>
  2. <th>Nazwa</th>
  3. ...
  4. </th>

Po co każdy znacznik ma class="pokaz" nie możesz zdefiniować klasy dla całej tabeli?
Co do mysql'a to jak wyżej.


--------------------
Goldenline: Łukasz Rodziewicz
Go to the top of the page
+Quote Post
Inti
post
Post #4





Grupa: Zarejestrowani
Postów: 67
Pomógł: 12
Dołączył: 20.01.2008
Skąd: Toruń

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


Witam

  1. <?php
  2. ...
  3.  
  4. $find = "*?co*";
  5.  
  6. /* albo */
  7.  
  8. $find = "%_co%";
  9. ?>


Sprawdź coś takiego, bo reszta wydaje się w porządku.

Pozdrawiam
Inti

PS. Zakładam, że połączenie z bazą jest bez zarzutów.

Ten post edytował Inti 28.05.2008, 22:13:06
Go to the top of the page
+Quote Post
nithajasz
post
Post #5





Grupa: Zarejestrowani
Postów: 230
Pomógł: 27
Dołączył: 27.05.2008
Skąd: Warszawa

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


  1. <?php
  2. $find = "%".$co."%";
  3. ?>
Go to the top of the page
+Quote Post
Inti
post
Post #6





Grupa: Zarejestrowani
Postów: 67
Pomógł: 12
Dołączył: 20.01.2008
Skąd: Toruń

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


Racja, tak mnie coś dziwił ten $ w SQL, a tutaj zmienna do przekazania blinksmiley.gif
Go to the top of the page
+Quote Post
empathon
post
Post #7





Grupa: Zarejestrowani
Postów: 246
Pomógł: 31
Dołączył: 13.11.2006
Skąd: się znamy?

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


Cytat(nithajasz @ 28.05.2008, 23:21:36 ) *
  1. <?php
  2. $find = "%".$co."%";
  3. ?>

I co to zmieni? W pierwotnym kodzie jest poprawnie.
Tak na marginesie ~piotrooo89 mam nadzieję, że po drodze filtrujesz dane z tego GET'a? Jeśli nie: http://pl.php.net/manual/pl/security.datab...l-injection.php


--------------------
Goldenline: Łukasz Rodziewicz
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




wszytsko teraz już chodzi... Dzięki empathon za wskazówki z tymi tabelami i sql injection. A reszcie ze chcieli zajrzeć.


--------------------
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: 21.08.2025 - 05:54