![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 235 Pomógł: 0 Dołączył: 10.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Chciałbym umieścić w warunku funkcji while stworzoną wcześniej funkcję, zawiera ona zapytania i zwraca mysql_fetch_array. Niestety nie działa mi to.
W czym problem? -------------------- |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Przecież loop zawsze zwraca pierwszy rekord wiec ci się petla while zapętla. A teraz zadanie dla ciebie: zastanów się dlaczego loop() zawsze zwraca pierwszy rekord. To nie jest pytanie podchwytliwe.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 235 Pomógł: 0 Dołączył: 10.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Chcę stworzyć funkcję, którą będzie się podawało w pętli do wyświetlania artykułów (w szablonie), tylko w szablonie nie będę pisał zapytań itd. więc potrzebuję funkcji.
Co do pytania to odpowiem wprost, niestety, nie wiem. Liczę na jakieś wskazówki. Ten post edytował o2w5n778 26.04.2012, 06:20:20 -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze sql injection (mysql_real_escape_string dla danych POST). Po drugie, poczytaj w dokumentacji (return dla funkcji, jest przykład z opisem) o zasięgu zmiennych bo możesz zapomnieć że $sas będzie dostępne poza funkcją. A po trzecie w dokumentacji mysql_fetch_array masz przykłady jak to zrobić. Pierwsze zdanie tej samej strony dokumentacji opisuje Ci to o czym nospor pisał.
Ten post edytował viking 26.04.2012, 06:47:54 -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 235 Pomógł: 0 Dołączył: 10.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Nie ma przykładu jak to zrobić w manualu funkcji mysql_fetch_array.
-------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
POD i fetchAll albo musisz w ciele funkcji utworzyć tymczasową tablicę i ją zwrócić.
Funkcja będzie zwracać tablicę (asocjacyjną) i sobie ładnie będziesz ładnie wyświetlał listy za pomocą foreach. -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 18 Dołączył: 7.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
@markonix
Tak, jest to dobre rozwiązanie ale dwukrotnie użyjesz pętli, przez co czas wykonywania kodu się minimalnie zwiększy.
Jak pisał viking - bezpieczeństwo jest ważne, chyba że projekt polega na ukazaniu słabości. Stąd umieszczenie funkcji intval() - skoro page_id to pomyślałem że to liczba ![]() I wygląda to niemal jak przykład z php.net. Jeśli koniecznie chcesz użyć własnej funkcji to wykonaj wcześniej mysql_query() i przekaż jego wynik jako argument Twojej funkcji. Ten post edytował ethann 26.04.2012, 12:19:26 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 235 Pomógł: 0 Dołączył: 10.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Chyba troszkę źle się wyraziłem lub mnie nie zrozumieliście
![]() Chcę zrobić w moim systemie tak, abym mógł w szablonie za pomocą pętli wyświetlać dane. Niestety niezbyt będzie to optymalne jeżeli w pliku szablonu będę tworzył zapytania itd. Mój problem polega na tym że nie mogę stworzyć funkcji, którą będę mógł umieścić we warunku pętli while/foreach (obojętnie) i ma ona zawierać zapytanie itd. A w szablonie za pomocą tablicy będę wyświetlał dane. Prościej mówiąc rozwiązanie wordpress'owe ![]() Ten post edytował o2w5n778 26.04.2012, 12:27:39 -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 18 Dołączył: 7.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
To tak jak pisał markonix. Tylko Jego pomysłem było użycie do tego PDO.
Ten post edytował ethann 26.04.2012, 12:35:42 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Funkcja może zwracać resurce mysql a potem w "widoku" można zrobić pętle mysql_fetch_assoc czy inną.
Wtedy jednak brzydko to wygląda (funkcja mysql wmieszana w HTML) dlatego tymczasowa tablica to chyba jedyna opcja. PDO i fetchAll pewnie też na tej zasadzie działa tylko szybciej. -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 16.06.2025 - 21:39 |