![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 11 Dołączył: 11.10.2004 Skąd: 3c Ostrzeżenie: (0%) ![]() ![]() |
Nie moge sobie poradzic juz pre razy natknalem sie na ten problem i ciagle nie wiem jak najsensowniej z niego wybrnac.
Chodzi mianowicie o to, ze gdy chce cos uzyskac w petli np. for i indeksuje mi to jako zero to zamierzony cel sie nie realizuje. Juz sprecyzuje o co mi chodzi, np teraz staram sie zrobic komentarze do niusow ktore pobierane sa z pliku txt, gdzie niusy sa zapisane w postaci: linia: nr||autor||tresc||data itd. wyciagm dane w ten sposob: plik: news.php Ogolnie dane newsow wyswietalaja sie poprawnie ale gdy chcem dorobic jakies dodatkowe elementy z uzyciem indeksow z petli to w momencie wywolania w linku indeksu "0" - np. ?add=0 - to nie otrzymuje tego co potrzebuje i co natomiast normalnie pojawia sie przy kolejnym indeksie ?add=1 itd. Do tej pory kombinowalem i zmienialem zliczanie z tablicy od jeden a nie od zera - ale to z koleji powoduje komplikacje przy stronicowaniu - np. nie moge poradzic sobie ze stala liczba niusow na stronie - zawsze na pierwszej jest jeden mniej... Domyslam sie ze problem z zerem zwiazany jest z tym ze wartosc ta jest rownoznaczna z false wiec skrypt sie nie wykonuje tak jak sie by chcialo. I teraz moje pytanie czy mozna jakos przemianowac to zero zeby bylo ono jako true? Badz moze ktos zna jakis inny sposob na poradzenie sobie z tym problemem? Ten post edytował Volume 15.12.2009, 21:28:48 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 5 Dołączył: 22.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Wycinek z http://pl.php.net/empty :
Returns FALSE if var has a non-empty and non-zero value. The following things are considered to be empty: "" (an empty string) 0 (0 as an integer) "0" (0 as a string) NULL FALSE array() (an empty array) var $var; (a variable declared, but without a value in a class) Tak więc, mimo że indexy zaczynają Ci się od zera, to użycie empty traktuje to, jakby zmienna add nie została przekazana. Zamiast tego, użyj funkcji isset. Powinno pomóc i rozróżnić sytuacje, gdy mamy index.php?add= i index.php?add=0 Na manualu jest nawet dobry przykład:
|
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
A ja bym zastosował ewentualne porównanie z dokładnością do typu. Oprócz znanego == istnieje także przecież ===, które oznacza, że nie tylko wartość musi być identyczna, ale także typ zmiennej. To rozróżni 0 od NULL czy "0". A chyba o to Ci chodzi (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 11 Dołączył: 11.10.2004 Skąd: 3c Ostrzeżenie: (0%) ![]() ![]() |
Dzieki pomoglo z isset - natomiast z przyrownaniem "===" cos dalej nie chcialo, ale tak czy owak zmienilem koncepcje zamiast pobierac indeks bezposrednio z petli $i postanowilem pobierac indeks z nr lini z niusa ($_nr[$i]) - dzieki czemu bede mial stale indeksy co wydaje mi sie, ze ulatwi zapisywanie komentarzy.
Niestety znowu natknalem sie na problem i mysle mysle i dalej nie wiem jak samemu sobie poradzic, moze zeby nie zakladac nowego temtu to spytam sie tu jeszcze o jedna rzecz. Pjawil mi sie problem taki, ze nie wsywietla mi podstrony dla opcji do komentarza niusa w momencie gdy strona ze stronicowania jest inna niz pierwsza (?str=1). Aktualnie kod tak wyglada: Czy moze ktos wie co jest tego przyczyna, jak mozna by rozwiklac ten problem? edit: aha doszedlem dlaczegos ie tak dzieje, dlatego ze w petli mam warunek $i<$comments_on_page+($str*$comments_on_page) - wiec ogranicza mi zakres dp ilosci niusow jakie sobie okresle... Ten post edytował Volume 16.12.2009, 16:48:19 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 15:24 |