Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Data
mith
post
Post #1





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 14.04.2006

Ostrzeżenie: (0%)
-----


Jak można do dzisiejszej daty dodać np. 2 miesiące?

$dzisiaj = date("Y-m-d");
Go to the top of the page
+Quote Post
Kuziu
post
Post #2





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $iloscDni = 30;
  3. $dzisiaj = date("Y-m-d", time() + (86400 * $iloscDni));
  4.  
  5. ?>


Ilość dni już sobie sam policz

86400 to ilość sekund w 1 dniu
Go to the top of the page
+Quote Post
mith
post
Post #3





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 14.04.2006

Ostrzeżenie: (0%)
-----


Wielkie dzięki Kuziu.
Ale mam jeszcze jedno pytanie.
Mam podaną datę np. 2006-06-04 i jest ona pobierana z bazy danych z kolumny data i jak można zrobić aby 5 dni przed tą datą wysłał maila na podany adres z kolumny mail?

Kod
mail: | data: |

cos@cos.pl | 2006-07-17 |
jakis@jakis.pl | 2006-12-30 |
no@no.pl | 2006-04-03 |
Go to the top of the page
+Quote Post
^bmb
post
Post #4





Grupa: Zarejestrowani
Postów: 69
Pomógł: 2
Dołączył: 12.12.2005

Ostrzeżenie: (0%)
-----


WItam!

Może z SQL-a skorzystać np:

  1. SELECT mail
  2. FROM tabela
  3. WHERE DATA BETWEEN DATE_SUB(NOW(),INTERVAL 5 DAYS) AND NOW()


a później w pętli foreach wysyłać komunikat dla każdego zwróconego maila
Go to the top of the page
+Quote Post
mith
post
Post #5





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 14.04.2006

Ostrzeżenie: (0%)
-----


A tak jaśniej?
Niema czegoś prostszego?

Bo mi tu jakiś błąd wywala:

Kod
zapytanie SQL:  

SELECT `mail`
FROM costam
WHERE `data`
BETWEEN DATE_SUB( NOW( ) , INTERVAL 5 DAYS )
AND NOW( )
LIMIT 0 , 30

MySQL zwrócił komunikat:  

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DAYS ) AND NOW( )
LIMIT 0, 30' at line 1
Go to the top of the page
+Quote Post
^bmb
post
Post #6





Grupa: Zarejestrowani
Postów: 69
Pomógł: 2
Dołączył: 12.12.2005

Ostrzeżenie: (0%)
-----


sorry nie mogę etraz przetestować ...spróbuj zmienić DAYS na DAY ..powinno działać
Go to the top of the page
+Quote Post
mith
post
Post #7





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 14.04.2006

Ostrzeżenie: (0%)
-----


No dobra działa już ten skrypt ale jak teraz zrobić aby mail był wysyłany tylko 1 raz?
Go to the top of the page
+Quote Post
^bmb
post
Post #8





Grupa: Zarejestrowani
Postów: 69
Pomógł: 2
Dołączył: 12.12.2005

Ostrzeżenie: (0%)
-----


Jak rozumieć ten jeden raz?

- jeden raz przy każdym wywołaniu skryptu? Czyli np. jeśli maile w tej tabeli nie są wartościami unikalnymi i mogą się powtarzać. Wtedy w zapytaniu
  1. SELECT DISTINCT mail...


- jeśli chodzi o to żeby przypominał tylko jeden raz na dzień automatycznie przy pierwszym wywołaniu skryptu danego dnia to po wysłaniu maila zapisuj gdzies do bazy informacje z datą ostatniego rozesłania komunikatów a pozniej przed wywołaniem sprawdzaj czy juz dzis byly rozesłane
Go to the top of the page
+Quote Post
mith
post
Post #9





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 14.04.2006

Ostrzeżenie: (0%)
-----


Nie codziennie tylko tak:

W tej bazie danych kolumna data oznacza termin kiedy konto ma zostać usunięte. Ale 5 dni przed usunięciem konta powinien zostać wysłany mail do osoby z informacją iż konto zostanie za 5 dni usunięte.

Kod
mail: | data: |

cos@cos.pl | 2006-07-17 |
jakis@jakis.pl | 2006-12-30 |
no@no.pl | 2006-04-03 |


I w tym problem że nie wiem jak to można zrobić?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 13:30