Autor | Zpráva | ||
---|---|---|---|
ondral Profil |
#1 · Zasláno: 24. 7. 2007, 12:19:40
Mohl by mi prosím někdo poradit jak vyřešit tento případ:
Mam v db několik záznámů a u každého datum. Potřeboval bych aby se mi do sloupce "rozdil" po každém otevření skriptu zapsal rozdíl mezi dnešním datumem a datumem v db u všech záznamů. A pak jestliže rozdíl bude např. míň jak 30 (dnů) tak odeslat mail na určitou adresu, kterou si vybere samozrejmě také z databáze s tim že se zapíše po odeslání do sloupce "odeslano" hodnota "1" (tím bych zamezil znovu poslání mailu) zatím jsem přišel jen jak vypočítat rozdíl: mysql_connect("$server","$user","$passwd"); mysql_select_db($db); $vysledek= mysql_query("SELECT * FROM revize"); while ($zaznam=MySQL_Fetch_Array($vysledek)): $dnes=date("Y-m-d"); $previze=$zaznam["d_pristi_revize"]; endwhile; $dnesek = strtotime($dnes); $revize = strtotime($previze); $rozdil = $revize - $dnesek; $pocet_dnu = $rozdil / 86400; Diky za rady |
||
Icka Profil * |
#2 · Zasláno: 24. 7. 2007, 14:44:16
No nevim, možná tomu úplně nerozumim, ale když chci aby se mi provedli scripty s položkama v databázi, které jsou starší (třeba než 30 dnů) tak dám:
mysql_query("select * from tabulka where datum < " . (time() - 2592000)); Sloupec datum ukládám do DBA samozřejmě v unixovém formátu.. SQL dotaz tedy načte všechny záznym starší 30 dnů... |
||
ondral Profil |
#3 · Zasláno: 24. 7. 2007, 16:38:40
v databazi mam sloupce
stroj | datum_revize | rozdil | mail | odeslano AB1 | 2009-07-07 | ------ | kontakt@mail.cz | hodnota 1 = ano, 0 = ne AB2 | 2009-09-07 | ------ | kontakt@mail.cz | hodnota 1 = ano, 0 = ne AB3 | 2009-08-07 | ------ | kontakt@mail.cz | hodnota 1 = ano, 0 = ne 1. Potrebuji aby mi skript vytahl z db vsechny data revizi (datum_revize) a pak je porovnal s dnesnim datumem a rozdil dnu zapsal do sloupce "rozdil". 2. krok by skript zkontroloval jestli ve sloupci "rozdil" je cislo mensi nebo rovno 30 a pokud ano tak by poslal na mail z db upozorneni a zapsal hodnotu 1 do sloupce "odeslano". Podminka by byla aby mail poslal pouze v pripade ze ve sloupci "odeslano" je 0 jinak by mail neposlal. |
||
BetaCam Profil |
#4 · Zasláno: 24. 7. 2007, 22:33:21
Jen tak v rychlosti. Pro spočítání počtu dnů do revize bych asi nepoužil PHP, ale spočítal bych to rovnou v MySQL dotazu. Tedy například takhle.
Přijde mi to elegantnější. Zaprvé nemusim v DB uchovávat sloupec "rozdil" ( přijde mi absolutně k ničemu ) Zadruhé nemusim v PHP "složitě" vypočítávat počet dnů do revize ________________________________________________________________ V PHP by pak měl stačit (pokud se nepletu) jeden cyklus a jedna podmínka tedy neco jako
Takže asi tak nějak :) Jinak je to psané z hlavy takže bych to bral s rezervou. |
||
ondral Profil |
#5 · Zasláno: 25. 7. 2007, 13:52:19
Diky moc za rady, konecne jsem se dobral pozitivniho vysledku za vasi pomoci :)
Udelal jsem to podle tebe BetaCam, diky |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0