![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 28.01.2004 Skąd: że znowu ლ(ಠ益ಠლ Ostrzeżenie: (0%) ![]() ![]() |
Cześć!
Natrafiłem na bardzo dziwny problem z pętlą FOR... Może ktoś z Was będzie w stanie mi pomóc. Działanie tej pętli mam już opanowane, widzę że nie zrobiłem w niej błędu (lub błędu nie widzę). Poniższy kod to wycinek skryptu do prostej listy sybskrypcyjnej . Chodzi o to, że za każdym razem, nie ważne który adres e-mail wpiszę- zostaje usunięty ostatni adres! Poszczególne wpisy mam oddzielone poprzez \n . To dziwne zachowanie pętli FOR i IF polega na tym, że warunek zostaje spełniony za każdym razem, w wyniku czego $usunnumer ma wartość taką, ile razy została wykonana pętla- bo za każdym razem warunek w IFie jest spełniony, i za każdym wykonaniem pętli wykonywana jest także zawartość IFa ![]() Czy ktoś mógłby wskazać, gdzie jest błąd? Zapewne chodzi o malutki błąd logiczny bo składniowych nie mam. Bardzo proszę o pomoc... Jeśli brakuje jakichś danych- proszę pisać, od razu podeślę na forum brakujący kod.
-------------------- Kod $kobieta = 'Kobieta zmienną jest...'; |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 401 Pomógł: 5 Dołączył: 14.09.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
musi byc podwoje rowna sie na porownanie zamiasat pojedynczego (przypisanie)
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 28.01.2004 Skąd: że znowu ლ(ಠ益ಠლ Ostrzeżenie: (0%) ![]() ![]() |
Niestety to nie to...
Po zmianie, o której piszesz, warunek nie jest spełniony i żadna linijka z pliku nie jest usuwana. Informacja "Podany adres e-mail został usunięty z listy." pojawia się, ale wynika to ze złego kodu, po prostu zawsze pojawi się ten napis jeśli ktoś wciśnie przycisk Usuń, poda jakiś adres i ten adres będzie poprawny. Czy może gdzieś indziej jest błąd? --EDIT-- gdy mam taki kod (z jednym znakiem równości):
i podam "adres3@serwer3.pl" do usunięcia to wyświetla mi: Kod linijka 0 adres3@serwer3.pl linijka 1 adres3@serwer3.pl linijka 2 adres3@serwer3.pl linijka 3 adres3@serwer3.pl linijka 4 adres3@serwer3.pl ...podczas gdy powninny być kolejne adresy zaczynając od 1 do 5. Potem usuwa ostatni wpis- adres 5. Dobrze że wogóle coś wyświetla, ale ciągle usuwa ostatni wpis! A w moim pliku wpis "adres3@serwer3.pl" znajduje się w linijce 3 (licząc od 1, dla php to będzie linijka 2) bo liczy od 0). Jestem normalnie zdesperowany i zdezorientowany, bardzo proszę o pomoc... ![]() Ten post edytował tomilipin 16.11.2004, 18:15:38 -------------------- Kod $kobieta = 'Kobieta zmienną jest...'; |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 602 Pomógł: 1 Dołączył: 3.04.2004 Skąd: Trójmiasto (Gdańsk) Ostrzeżenie: (0%) ![]() ![]() |
ale Ty chcesz sprawdzić czy ten adres odpowiada adresowi w tablicy a nie przypisać.
Nie możesz tak myśleć "dobrze że coś się wyświetla" tylko pomyśl co Ty chcesz zrobić. Najlepiej do przejścia po tablicy użyj foreach" title="Zobacz w manualu PHP" target="_manual. Nie wiem co jest źle tutaj (brzydki kod nie zachęca do czytania ![]() A jeśli chcesz używać for to pamiętaj żeby nie używać count() i w ogóle funkcji w warunku (o ile to mozliwe). Najlepiej przypisać długość tablicy do zmiennej i sprawdzać czy index jest mniejszy od tej zmiennej, bo funkcja jest wtedy wywoływana tylko raz. A jeśli umieścisz ją w warunku pętli to jest wykonywana za kazdym jej przebiegiem. Dodatkowo $index jest liczbą a nie stringiem więc przypisuj $index=0 a nie $index="0" -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 28.01.2004 Skąd: że znowu ლ(ಠ益ಠლ Ostrzeżenie: (0%) ![]() ![]() |
Rozumiem. Zmieniłem = na ==.
Teraz moja pętla ma postać:
Przepraszam za brzydki kod... jeśli taki faktycznie jest... Nie zmienia to jednak faktu że nie działa ![]() -------------------- Kod $kobieta = 'Kobieta zmienną jest...'; |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 18.08.2004 Skąd: Jastrzębie Zdrój Ostrzeżenie: (0%) ![]() ![]() |
A nie łatwiej zrobić to tak:
Ten post edytował silent 18.11.2004, 00:16:17 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
Funkcja file() rzeczywiście zwraca plik do tablicy, jednak każdy element tablicy zawoiera na końcu znak nowej linii. Podejrzewam, że tu właśnie tkwi problem. Polecam porównywać to tak:
-------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 28.01.2004 Skąd: że znowu ლ(ಠ益ಠლ Ostrzeżenie: (0%) ![]() ![]() |
Dzięki Kszychu! Działa
![]() Niech Ci Bozia w dzieciach wynagrodzi ![]() Silent- nie rozumiem kodu, który podaleś. Jeszcze jestem w tym za słaby, ale dzięki za pomoc! Napewno to sobie przyswoję Jeszcze raz: dzięki Wam za pomoc! --EDIT-- dodam, że efekt końcowy można zobaczyć na mojej stronie domowej, do której link znajduje się poniżej- w podpisie. Ten post edytował tomilipin 17.11.2004, 15:51:39 -------------------- Kod $kobieta = 'Kobieta zmienną jest...'; |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 18.08.2004 Skąd: Jastrzębie Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Dodałem komentarze i poprawkę kszycha, może teraz Ci się rozjaśni
![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 02:15 |