Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Warunek Like
PawelC
post
Post #1





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Hej (IMG:style_emoticons/default/smile.gif)
Mam dziwny problem, mam taki kod:
  1. if($akcja=='edytuj'){
  2. echo '<form method="post" action="plik.php?akcja=szukaj">
  3. Wpisz nazwę programu do edycji:<br />
  4. <input type="text name="program"><br />
  5. <input type="submit" value="Szukaj"></form>';
  6. }
  7.  
  8. if($akcja=='szukaj'){
  9. $nazwa=$_POST['program'];
  10. echo $nazwa;
  11. $sqle=mysql_query("select `nazwa` from `gd_pliki` where `nazwa` like '%$nazwa%'");
  12. $row=mysql_fetch_array($sqle);
  13. echo $row['nazwa'].'<br />';
  14.  
  15. }

I niby jest wszystko ładnie pięknie, tylko dlaczego nie odczytuje mi zawartości $nazwa?
Na tym wampServ ostatnio coś dużo problemów mam z takimi prostymi rzeczami. Jeżeli nawet w like wpiszę np nazwę programu Cube to wyświetla mi coś zupełnie innego.

Ten post edytował ExPlOiT 26.10.2009, 12:48:26
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




%$nazwa% oznacza ze znajdzie ci tez ciąg "alaCubemakota"
skoro dostajesz cos innego to pewnie masz też ciągi, ktora mają w sobie słowo cube i je wyciąga ci w pierwszej kolejnosci. a ze ty wyswieltasz tylko jeden rekord zamiast wszystkich znalezionych....
Go to the top of the page
+Quote Post
PawelC
post
Post #3





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


nospor jak wpiszę na sztywno w like Cube, to mi wyświetla program o nazwie Monopoly Int, a jeżeli wpuszczę to w pętle while, to wywala mi wszystkie rekordy z bazy.
Go to the top of the page
+Quote Post
kleus
post
Post #4





Grupa: Zarejestrowani
Postów: 93
Pomógł: 7
Dołączył: 22.10.2009
Skąd: Siędzę

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


miałem podobny problem na wampie... odczytuje mi dane z bazy danych tylko jak polecenie wyglada tak:
  1. $sqle = mysql_query("SELECT nazwa FROM gd_pliki WHERE nazwa LIKE '%$nazwa%' ORDER BY id DESC");
Go to the top of the page
+Quote Post
PawelC
post
Post #5





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Muszę tego wampSERV wywalić, bo dziwnie działa, wpisałem w pole formularza test, i teraz czego bym nie wpisał to wywala mi cały czas test, tak jakby zapamiętywał to co wpisuje do formularza, mimo tego że zamknę przeglądarkę.
Go to the top of the page
+Quote Post
thek
post
Post #6





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Na początek. Register globals... Może on Ci gdzieś bruździ po drodze lub nadpisujesz w jakiś sposób zmienną POST?
Dwa to sprawdź co z kolei Ci baza zwróci gdy dasz to zapytanie w phpmyadmin ( czy czego tam używasz ) na sztywno. Jeśli już tam jest coś nie tak, to wiesz, że to nie php robiłby problem.
Go to the top of the page
+Quote Post
PawelC
post
Post #7





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


W phpmyadmin dobrze pokazuje wynik zapytania, czy coś ze zmienną jest nie tak.
Go to the top of the page
+Quote Post
thek
post
Post #8





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Ja bym na twoim miejscu sprawdził co właściwie zmienna $_POST rzeczywiście zawiera. Może się bowiem zdarzyć, że jest ona pusta i wtedy do bazy idzie zapytanie mające:
  1. (...) LIKE '%%'
albo jeszcze inny syf o którym nie wiesz. Użyj var_dump( $_POST ) i sobie zobacz co Ty do bazy właściwie wysyłasz.

EDIT: Możesz też wyświetlić samo zapytanie idące do bazy by się przekonać co się między % znajduje. Bo jak dla mnie to tam jest przyczyna problemu.

Ten post edytował thek 26.10.2009, 14:57:52
Go to the top of the page
+Quote Post
PawelC
post
Post #9





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Faktycznie zapytanie po wyświetleniu wygląda tak:
  1. SELECT * FROM gd_pliki WHERE nazwa LIKE '%%'


Sprawdziłem tym var_dump i wywala mi NULL
Go to the top of the page
+Quote Post
netmare
post
Post #10





Grupa: Zarejestrowani
Postów: 285
Pomógł: 37
Dołączył: 18.12.2007
Skąd: Łódź

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


Najgorzej jak się człowiek czymś głupim zasugeruje. Obstawiam że jak dasz cudzyszłów po input type="text to przeglądarka zrozumie że name to program (IMG:style_emoticons/default/winksmiley.jpg)

Ten post edytował netmare 26.10.2009, 18:37:39
Go to the top of the page
+Quote Post

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: 22.08.2025 - 17:38