![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 16.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Oto mój kawałek pseudokodu:
Użytkownik pisuje w formularz markę samochodu (parametr - 'samochod') dalszym etapie przekazywane jest to do kodu php
teraz chciałbym taki myk aby: jeżeli w bazie znajduje się taka marka samochodu to wyskoczy komunikat "jest taki samochod" jezeli w bazie nie ma takiego samochodu tzn MySQL zwrócił pusty wynik (zero rekordów) wyskoczy komunikat "nie ma takiego samochodu" jak to wykonać? Prosze o pomoc |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 376 Pomógł: 47 Dołączył: 23.08.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Krótki komentarz: nie używałem nigdy tablic $_REQUEST, po prostu dawałem $_GET albo $_POST i w forumlarzu definiowałem method jako get lub post. Poza tym uważam, że zamiast LIKE lepiej jest po prostu użyć znaku równości...
po prostu jak wpiszesz fiat 12 , to wyskoczy Ci, że masz taki samochód... a w bazie możesz mieć fiat 126p (IMG:style_emoticons/default/tongue.gif) Dlatego = zamiast LIKE Ten post edytował Kostek.88 22.02.2012, 00:35:07 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 16.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
no niestety wyskakuje błąd
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/public_html/samochod/car.php btw: czemu uważasz ze używanie $_REQUEST jest złe? Mają jakieś wady? Nauczyłem się ich z książki jako uniwersalne, załatwiające wszystkie sprawy. Coś z nimi nie tak? Ten post edytował pkosciej 22.02.2012, 00:59:35 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 548 Pomógł: 105 Dołączył: 4.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
i teraz powinno ci się wyświetlić gdzie masz błąd w zapytaniu Ten post edytował kadlub 22.02.2012, 13:05:03 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
To wyrzuć tą książkę do kosza. Nie masz żadnej kontroli nad danymi, nie wiesz skąd pochodzą (GET, POST, COOKIE) a w dodatku stosujesz frywolnie wrzucając od razu do zapytania (SQL INJECTION). Takie nawyki od początku to zerowe bezpieczeństwo późniejszych stron. Skoro i tak dopiero się uczysz zacznij czytać o PDO.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 376 Pomógł: 47 Dołączył: 23.08.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Wrzuc to zapytanie do phpMyAdmin do okienka QUERY (ZAPYTANIE), czy jak to sie tam zwalo. Przetestujesz w ten sposob czy dziala.
btw: czemu uważasz ze używanie $_REQUEST jest złe? Mają jakieś wady? Nauczyłem się ich z książki jako uniwersalne, załatwiające wszystkie sprawy. Coś z nimi nie tak? Nie napisalem, ze to jest zle (IMG:style_emoticons/default/smile.gif) Po prostu nigdy nie uzywalem i nie wiem czy prawidlowo sie to zachowuje. Ale jak zauwazayl tutaj ktos, powinienes miec kontrole nad tym, czy dane wedruja przez POST, czy GET itd.... wlasnie po to zostaly te tablice w PHP 5 wprowadzone. W PHP 4 bylo tak, ze dane odbierales po prostu dana zmienna, bez uzywania tablic, np. miales pole formularza o nazwie "ja" to w PHP odebrane bylo to jako zmienna $ja. W zasadzie wychodzi na to, ze $_REQUEST to jakby cofniecie sie do zachowan z PHP4 (IMG:style_emoticons/default/tongue.gif) PS. Jesli sie myle, bo to niech mnie ktos poprawi (IMG:style_emoticons/default/wink.gif) Ten post edytował Kostek.88 22.02.2012, 09:59:14 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 142 Pomógł: 7 Dołączył: 3.08.2007 Skąd: śląsk Ostrzeżenie: (0%) ![]() ![]() |
na moje oko Wasze podpowiedzi są błędne, zliczacie mysql_num_rows ale wcześniej nie ma wysłanego zapytania do bazy
|
|
|
![]()
Post
#8
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
mysql_query, polecam poczytać...
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 16.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Biorąc Wasze wszystkie uwagi wydedukowałem coś takiego:
Polecenie to działa nie wywala żadnych błędów... prawie działa... jednak zwraca zły wynik. kiedy w formularzu wpisze Ford to wartość $samochod przyjmuje Ford i to ładnie wyświetla mi się w echo $samochod. jednak $num_results wyświetla mi wynik zerowy, czemu tak jest? Próbowałem wpisać nazwę samochodu na sztywno czyli zamieniłem linijke:
na
Wynik zwrócił mi się wtedy prawidłowy równy jeden, nie rozumiem czemu jak podstawiam zmienna w zapytaniu to to nie działa |
|
|
![]()
Post
#10
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
podstawowe operacje na stringach (i nie chodzi mi o majtki)(IMG:style_emoticons/default/exclamation.gif) !
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 142 Pomógł: 7 Dołączył: 3.08.2007 Skąd: śląsk Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 376 Pomógł: 47 Dołączył: 23.08.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jak już to powinno być:
S?robuj zastosować PDO jak radziłem wcześniej bo się przejedziesz na takim kodzie. I nie będziesz miał też problemu jak to zapisać, escape zrobić bo zastosujesz placeholder (SELECT marka FROM SAMOCHODY WHERE marka LIKE ?) Ten post edytował viking 22.02.2012, 16:27:29 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 21:17 |