![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 17.10.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Chcę wyciągnąć dane z bazy i nie mogę sobie przypomnieć polecenia SQL aktualnie mam takie :
Teraz opiszę co chcę zrobić, a więc mam bazę o nazwie Library w niej mam kategorię books i z kategorii books chcę wyciągnąć dane książek które będą wyłoływane przez id po przez metodę GET czyli np. library.php?id=6 i wyrzuca książkę o id 6. Jak mam sformułować dobrze pytanie SQL, bo te co napisałem wyżej nie działa |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 9.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Problem jest oczywiście w ".id."
tak pewnie zadziała: SELECT * FROM books WHERE id=$_GET['id']; Ale oczywiscie nie możesz w ten sposób tworzyć zapytań. Prosisz się wtedy o ataki sql Injection. Musisz $_GET['id'] przepuscić przez funkcje typu: strip_tags, htmlspecialchars, filter_var() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 362 Pomógł: 44 Dołączył: 10.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Zapytanie wydaje sie ok, tylko zmienna powinna być czymś w stylu:
Cytat id=".$id." Jak wrzucasz zapytanie z parametrem z GET koniecznie pamiętaj o przefiltrowaniu parametru najpierw! |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 17.10.2012 Ostrzeżenie: (0%) ![]() ![]() |
Problem jest oczywiście w ".id." tak pewnie zadziała: SELECT * FROM books WHERE id=$_GET['id']; Ale oczywiscie nie możesz w ten sposób tworzyć zapytań. Prosisz się wtedy o ataki sql Injection. Musisz $_GET['id'] przepuscić przez funkcje typu: strip_tags, htmlspecialchars, filter_var() Zapytanie wydaje sie ok, tylko zmienna powinna być czymś w stylu: Jak wrzucasz zapytanie z parametrem z GET koniecznie pamiętaj o przefiltrowaniu parametru najpierw! Ups, źle przepisałem na forum, oczywiście był tam znak $, lecz dalej nie działa... Co do wypowiedzi Pjotrek80, to zrobiłem nową zmienną z $_GET['id']; na $id, oczywiście będzie wszystko przepuszczonę przez htmlspecialchars. Już naprawiłem, problemem było to że nie zrobiłem pętli przy wyciąganiu danych z bazy Ale jeszcze mam małe pytanie, jak dopisać else do pętli ? tzn. jeśli ktoś wpiszę id którego nie będzie chciałbym aby wyrzuciło tekst "brak książki w bazie danych" próbowałem do bazy dopisać else ale nie działa Ten post edytował dareksbs 25.06.2013, 23:23:39 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 9.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 17.10.2012 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli używasz np mysqli, to pewnie piszesz coś takiego:
Ale ja jestem aktualnie w pętli, mam
I właśnie chciałem po tym dopisać else, ale nie działa |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 9.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Ale ja jestem aktualnie w pętli, mam
I właśnie chciałem po tym dopisać else, ale nie działa Masz dwa razy books w pętli foreach (IMG:style_emoticons/default/smile.gif) A do czego chcesz przypisać tutaj else? Ten post edytował Pjotrek80 25.06.2013, 23:51:17 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 17.10.2012 Ostrzeżenie: (0%) ![]() ![]() |
Masz dwa razy books w pętli foreach (IMG:style_emoticons/default/smile.gif) A do czego chcesz przypisać tutaj else? Tak wiem bo pierwsze books to jest połączenie z bazą oraz wywołanie polecenia SQL a drugie books to zmienna poprzez którą będę wyciągał rzeczy z bazy, i wszystko ogólnie śmiga dobrze, ale chciałbym jeszcze dopisać jakoś else który by wyrzucał informację gdy ktoś wpiszę w GET id którego nie będzie w bazie |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 15:41 |