![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 62 Pomógł: 0 Dołączył: 27.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Nie mam pomysłu jak skrypt ma sprawdzić czy wiadomość mailowa została już raz wysłana do odbiorcy.
Kod który obecnie posiadam wysyła mi maila przy każdorazowym odświeżeniu strony.
Ten post edytował zaworek 10.05.2011, 12:30:15 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 483 Pomógł: 50 Dołączył: 15.03.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
W czasie wysłania zmianiasz status danemu uzytkownikowi na 1 np dodajesz rekord "WYSLENE" 0/1 i dodajesz warunek where wyslene =0 ?
Ten post edytował Hpsi+ 10.05.2011, 13:39:12 -------------------- Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas === po prostu kocham ją :D haha |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 62 Pomógł: 0 Dołączył: 27.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
W czasie wysłania zmianiasz status danemu uzytkownikowi na 1 np dodajesz rekord "WYSLENE" 0/1 i dodajesz warunek wehere wyslene =0 ? Tak też kombinowałem ale WHERE wyslane = 0 nie mogę dać tutaj : bo wówczas nie wyświetli mi wszystkich rekordów. Ogólnie rzecz biorąc skrypt ma mi pomóc nadzorować terminy różnych czynności, a przy okazji zbliżania się konkretnych dat zmieniać kolorowanie wierszy no i słać do mnie ten nieszczęsny mail (nie mam użytkowników). Jeżeli napiszę tak:
to do każdego rekordu w kolumnie mail wstawi mi 1 czyli źle. Jak to powiązać z id wpisu? Ten post edytował zaworek 10.05.2011, 13:22:25 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 314 Pomógł: 44 Dołączył: 12.11.2010 Skąd: UK Ostrzeżenie: (0%) ![]() ![]() |
Pobierasz wszystkie rekordy , ale wysyłasz tylko jak wysłane = 0 , i updatujesz w tym samym if'ie wysłane na 1....
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 62 Pomógł: 0 Dołączył: 27.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
To rozumiem, a wracając do wcześniejszego pytania jak powiązać update z id wpisu bo przy poniższej konstrukcji każdy rekord dostaje "1"?
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 62 Pomógł: 0 Dołączył: 27.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Czy w tabeli jest 0 czy 1 i tak wysyła maila. Pewnie zrobiłem prosty błąd którego nie widzę.
edit: ok znalazłem problem, brakowało otwartej klamry po if ($wiersz['mail'] == 0) oraz drugiej zamykającej po mysql_query, po zmianie wygląda że jest ok. dziękuję za wszystkie sugestie Jednak nie jest dobrze. O ile kolorowanie wierszy funkcjonuje tak jak chciałem to wysyłanie powiadomień już nie. Status czy wysłany (1) czy nie (0) działa poprawnie tylko dla ostatniego wyświetlanego rekordu z bazy danych. Zmiana innych uzależniona jest właśnie od niego. Czemu skrypt się tak zachowuje?
Ten post edytował zaworek 10.05.2011, 14:32:09 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
CHłopie.... włącz myślenie.
mysql_query("UPDATE zur SET mail = '0'"); Znowu bezwarunkowo czyścisz wszystko, całą tabelę. Czyli jak coś ustawiłeś na 1, to gdy tylko wykona się linijka wyżej znowu wszystko ma 0 mysql_query("UPDATE zur SET mail = '1' WHERE done = '$data[dzis]'"); Czemu dajesz warunek na datę? Skoro robisz to dla każdego maila osobno to daj warunek na ID - na ten rekord, który właśnie przetwarzasz. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 62 Pomógł: 0 Dołączył: 27.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
CHłopie.... włącz myślenie. mysql_query("UPDATE zur SET mail = '0'"); Znowu bezwarunkowo czyścisz wszystko, całą tabelę. Czyli jak coś ustawiłeś na 1, to gdy tylko wykona się linijka wyżej znowu wszystko ma 0 mysql_query("UPDATE zur SET mail = '1' WHERE done = '$data[dzis]'"); Czemu dajesz warunek na datę? Skoro robisz to dla każdego maila osobno to daj warunek na ID - na ten rekord, który właśnie przetwarzasz. @nospor podpowiesz mi jak napisać ten warunek? zakładam że wpierw trzeba sprawdzić dla których ID spełniony jest $wiersz['done'] == $data['dzis'] przyznam jednak szczerze że nie wiem jak to zrobić ![]() |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Zamiast
WHERE done = '$data[dzis]' Masz dać: WHERE done = '$wiersz[id]' Zakładam, że każdy mail ma swoje ID w tabeli Wracając do tego: mysql_query("UPDATE zur SET mail = '0'"); po co w ogóle to robisz? Maile mają mieć wartość 0. Dopiero gdy mail wyślesz masz zmienić mu wartość na 1. W żadnym innym wypadku wartości już masz nie zmieniać. Na żadną ani na 0, ani na 1 -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 62 Pomógł: 0 Dołączył: 27.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zakładam, że każdy mail ma swoje ID w tabeli Wracając do tego: mysql_query("UPDATE zur SET mail = '0'"); po co w ogóle to robisz? Maile mają mieć wartość 0. Dopiero gdy mail wyślesz masz zmienić mu wartość na 1. W żadnym innym wypadku wartości już masz nie zmieniać. Na żadną ani na 0, ani na 1 Zmiana na WHERE done = '$wiersz[id]' nic nie dała. Przy tym zapisie w tabeli zur kolumna mail 0 nie zmieniło się na 1. Mail oczywiście dotarł ale przy odświeżania przyjdzie kolejny i kolejny... Jak wspomniałem to skrypt który ma mi przypominać o zbliżających się terminach konkretnie kalibracji sprzętu. Update w tabeli o który pytasz ma się dokonywać jeżeli data w done zostanie przez administratora (oddzielny skrypt) zmieniona ( w ramach tego samego ID) i będzie to znowu "bezpieczny" czyli odległy termin. Inaczej w kolumnie mail tkwiła by cały czas 1 Tak to sobie wykombinowałem... Ten post edytował zaworek 11.05.2011, 21:40:24 |
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Zmiana na WHERE done = '$wiersz[id]' nic nie dała. No bo ja się pomyliłem a ty bezmyślnie skopiowałeś.Skoro przyrównujemy id to ma być id a nie done WHERE id = '$wiersz[id]' Cytat Update w tabeli o który pytasz ma się dokonywać jeżeli data w done zostanie przez administratora (oddzielny skrypt) zmieniona ( w ramach tego samego ID) i będzie to znowu "bezpieczny" czyli odległy termin. No ok, ale przy zmianie na 0 też masz robić to z warunkiem a nie na całej tabeli.
Inaczej w kolumnie mail tkwiła by cały czas 1 -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 62 Pomógł: 0 Dołączył: 27.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wszystko jasne. Działa jak należy.
Dziękuję. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 04:38 |