Autor | Zpráva | ||
---|---|---|---|
Stepanka Profil * |
#1 · Zasláno: 1. 10. 2008, 17:11:35
Ahoj,
prosím neporadil by mi někdo s jedním problémem? Mám v databázi sloupeček "emaily_adresatu". A potom kód nějaký takový: DOTAZ NA DB while ($row_zakaznici = mysql_fetch_array ($query_zakaznici)) { $emaily[$row_zakaznici['id']] = array("email" => $row_zakaznici['email'], "uz_jm" => $row_zakaznici['uz_jm']); } V poli $emaily mám teď třeba 10 emailů. foreach ($emaily as $k => $v) { $mail = new PHPMailer(); echo "id: ".$k." -- email: ".$v['email']." -- jmeno: ".$v['uz_jm'].'<br>'; $mail->IsHTML(true); // tento řádek je zbytečný, protože níže nastavujeme obsah proměnné AltBody $mail->AddAddress($v['email']); // přidáme příjemce atd ... vytvořím předmět, odešlu mail... if(!$mail->Send()) { // odešleme e-mail echo '<br />Došlo k chybě při odeslání e-mailu.'; echo '<br />Chybová hláška: ' . $mail->ErrorInfo; } else { echo '<br /><span class="b">'.__EMAIL_BYL_V_PORADKU_ODESLAN_NA_ADRESU__.' </span>'.$v['email']; $query = mysql_query ("UPDATE kampane SET emaily_adresatu = '".$v['email']."' WHERE id_kampane = '".$_GET['id_kampane']."'"); } Problém ale je, že se mi email v databázi vždycky přepíše a uloží se jen poslední z cyklu foreach. Já bych tam ale potřebovala vložit všechny e-maily a oddělit je třeba čárkou, nebo nějak jinak, aby se později daly použít. Nevěděl by někdo, jak na to? Děkuju.. |
||
RAmses Profil |
#2 · Zasláno: 1. 10. 2008, 17:28:57
Ahoj,
ukládání do db si odlož až za cyklus foreach. Za foreachem $emaily_ulozit = implode(';', $emaily); si pak tuto proměnnou ulož ke kampani |
||
Stepanka Profil * |
#3 · Zasláno: 1. 10. 2008, 17:34:33
RAmses
Vyřešila jsem to ještě před tebou takhle if(!$mail->Send()) { // odešleme e-mail echo '<br />Došlo k chybě při odeslání e-mailu.'; echo '<br />Chybová hláška: ' . $mail->ErrorInfo; } else { echo '<br /><span class="b">'.__EMAIL_BYL_V_PORADKU_ODESLAN_NA_ADRESU__.' </span>'.$v['email']; $maily_zakazniku .= $v['email'].', '; $query = mysql_query ("UPDATE kampane SET emaily_adresatu = '".$maily_zakazniku."' WHERE id_kampane = '".$_GET['id_kampane']."'"); } A ukládá to taky vcelku dobře.. Vidíš v tomhle postupu nějakou nevýhodu? Mám to změnit na to Tvoje? |
||
RAmses Profil |
#4 · Zasláno: 1. 10. 2008, 22:45:50
Pro každý odesláný e-mail zbytečně přepisuješ v databázi jeden a ten samý záznam - $_GET['id_kampane'] - takže funkční to je, ale zbytečné. Joo počkej, ty vlastně chceš uložit jen ty, které se podařilo odeslat, že? Udělal bych to takhle:
... else { $maily_zakazniku[] = $v['email']; } ... // za foreachem ulozis maily $maily_zakazniku = implode(",", $maily_zakazniku); $query = mysql_query ("UPDATE kampane SET emaily_adresatu = '".$maily_zakazniku."' WHERE id_kampane = '".$_GET['id_kampane']."'"); |
||
Stepanka Profil * |
#5 · Zasláno: 2. 10. 2008, 09:34:01
RAmses
Tak jo, děkuji mockrát, vyřešila jsem to tak, jak píšeš. |
||
Časová prodleva: 16 let
|
0