| Autor | Zpráva | ||
|---|---|---|---|
| Ben Profil * |
#1 · Zasláno: 16. 3. 2011, 15:45:23
Ahoj, vytvářím script pro cron na kontrolu vypršení aukce a následným odesláním emailu, pokud je datum konce aukce menší než momentální datum. Problém je v tom, že se mi cyklus provede jenom jednou i když v MySQL mám 3 odpovídající záznamy, které vyhovují podmínce pro odeslání. ta samá podmínka je použita pro výpis ukončených aukcí a vypíše záznamy 3.
Nějaké nápady?
<?php
error_reporting(e_all);
//conecting to MySQL
include"config.php";
//funkce na zjisteni zbyvajiciho casu
function get_time_difference($start, $end){
$uts['start'] = strtotime($start);
$uts['end'] = strtotime($end);
if($uts['start'] !== -1 && $uts['end'] !== -1){
if($uts['end'] >= $uts['start']){
$diff = $uts['end'] - $uts['start'];
if($days = intval((floor($diff / 86400))))
$diff = $diff % 86400;
if($hours = intval((floor($diff / 3600))))
$diff = $diff % 3600;
if($minutes = intval((floor($diff / 60))))
$diff = $diff % 60;
$diff = intval($diff);
return(array('days'=>$days, 'hours'=>$hours, 'minutes'=>$minutes, 'seconds'=>$diff));
}
else{
//trigger_error("Konečný datum a čas je starší než počáteční!", E_USER_WARNING);
}
}
else{
//trigger_error("Zjištěno neplatné datum nebo čas!", E_USER_WARNING);
}
return(false);
}
$result = mysql_query("SELECT * FROM aukce ORDER BY id ASC");
while($row = mysql_fetch_array($result)){
//$row["end"] je datum konce a musi byt ulozena v numerickem formatu YYYY-MM-DD-HH-MM-SS
$datum = explode("-", $row["end"]);
$rok = $datum[0];
$mesic = $datum[1];
$den = $datum[2];
$hodina = $datum[3];
$minuta = $datum[4];
$sekunda = $datum[5];
$arr = get_time_difference("now", "$rok-$mesic-$den $hodina:$minuta:$sekunda");
if($arr == false){
//echo $row["end"]."<br>";
//echo "Prodáno";
function autoUTF($s){
// detekce UTF-8
if (preg_match('#[\x80-\x{1FF}\x{2000}-\x{3FFF}]#u', $s))
return $s;
// detekce WINDOWS-1250
if (preg_match('#[\x7F-\x9F\xBC]#', $s))
return iconv('WINDOWS-1250', 'UTF-8', $s);
// předpoklad ISO-8859-2
return iconv('ISO-8859-2', 'UTF-8', $s);
}
function cs_mail ($to, $predmet, $zprava, $head = ""){
$predmet = "=?utf-8?B?".base64_encode(autoUTF ($predmet))."?=";
$head .= "MIME-Version: 1.0\n";
$head .= "Content-Type: text/plain; charset=\"utf-8\"\n";
$head .= "Content-Transfer-Encoding: base64\n";
$zprava = base64_encode (autoUTF ($zprava));
return mail ($to, $predmet, $zprava, $head);
}
$zprava = "Dobrý den,\n
právě jste úspěšně vydražil/a předmět ".$row["manufacturer"] .$row["tip"]."za částku ".$row["price"]."&Euro;.\n
Vydražený předmět je pro vás připraven k vyzvednutí na centrále v IT oddělení. Platba proběhne formou srážky z platu následující měsíc.\n
V případě jakýchkoli dotazů nás kontaktujte.\n\n
Gratulujeme k vyhrané aukci!\n\n
";
$mail = $row["last_bid_from"]."@amrest.eu";
$predmet = "Aukce - ".$row["manufacturer"] .$row["tip"];
$kon = cs_mail ($mail, $predmet, $zprava, "From: $_POST[odesilatel] \n");
if ($kon)
echo "<p class=\"box\"><strong>Zprava byla odeslana.</strong></p>";
else
echo "<p class=\"error\"><strong>Zpravu se nepodarilo odeslat.</strong></p>";
}
}
?>
|
||
| Tori Profil |
#2 · Zasláno: 16. 3. 2011, 16:43:40
Dejte ty definice funkcí mimo cyklus. Pokud o redeklaraci existující funkce vyhodí Fatal Error.
|
||
| Ben Profil * |
#3 · Zasláno: 16. 3. 2011, 16:57:38
Tori Supr, děkuju moc, už to valí, tak jak má.
|
||
|
Časová prodleva: 15 let
|
|||
0