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: 13 let
|
0