Autor Zpráva
davef6
Profil
Potřeboval bych odeslat email s několika vzkazy na určenou adresu vybranou z databáze. Ale netušim jak narvu více vzkazů spolu s datumem poslání (time_send) do jednoho emailu a odešlu, pak následuje zpracování vzkazů pro další ho uživatele atd. Prostě když se změní při výpisu z databáze email, tak aby se předchozí odeslal a naplnil se další nepřečtenými vzkazy (text) a pak se také odeslal. Díky za rady

$prikaz = MySQL_Query("SELECT u.email, v.time_send, v.text, v.id_uziv_kdo from uzivatele u join nastaveni_uziv n on u.id = n.id_uziv join vzkazy v on n.id_uziv = v.id_uziv_komu where n.send_mess=1 and v.precteno=0 order by u.email, v.time_send desc");
  $num = mysql_num_rows($prikaz);
  $cislo = 1;
  if($num > 0)
  {
    $vzkaz = "Neprecteny vzkaz z test.cz\n\n";
    $vzkaz3 = "Vzkaz byl automaticky zaslan z Vaseho vzkazniku na http://www.mp3stahuj.cz pro pripadnou odpoved na vzkaz se prihlaste do vzkazniku. \n Zmenit frekvenci zasilani neprectenych vzkazu, pripadne zrusit zasilani muzete provest ve Vasem vzkazniku.";
    while($zaz = mysql_fetch_assoc($prikaz))
    {
    $email = $zaz['email'];
    $predmet = "Neprecteny vzkaz z test.cz";
    $cas_poslani = $zaz['time_send'];
    $upr_cas = StrFTime("%d.%m. %H:%M", $cas_poslani);
    $text = $zaz['text'];
    if ($cislo == 1) {$email2 == $email;}
    $text = iso2ascii($text);
    $vzkaz2 = "Datum: $upr_cas\n Vzkaz: $text \n\n";
    if ($email2 !== $email) 
    {
      $email2 = $email;
      $vzkaz_s = $vzkaz.$vzkaz2.$vzkaz3;
      if(mail($email2, $predmet, $vzkaz_s, "From: vzkaznik@test.cz"))
      echo "Odesláno";
    }
    }
  }
AM_
Profil
  $prikaz = MySQL_Query("SELECT u.email, v.time_send, v.text, v.id_uziv_kdo from uzivatele u join nastaveni_uziv n on u.id = n.id_uziv join vzkazy v on n.id_uziv = v.id_uziv_komu where n.send_mess=1 and v.precteno=0 order by u.email, v.time_send desc");
  $num = mysql_num_rows($prikaz);
  $cislo = 1;
  if($num > 0)
  {
    $vzkaz = "Neprecteny vzkaz z test.cz\n\n";
    $vzkaz3 = "Vzkaz byl automaticky zaslan z Vaseho vzkazniku na http://www.mp3stahuj.cz pro pripadnou odpoved na vzkaz se prihlaste do vzkazniku. \n Zmenit frekvenci zasilani neprectenych vzkazu, pripadne zrusit zasilani muzete provest ve Vasem vzkazniku.";
$predmet = "Neprecteny vzkaz z test.cz"; //tohle nema co delat ve while
$vzkaz2 = ''; //nastavime pocatecni hodnotu
$email2 = false; //dulezite, jinak budes dostavat notice o nedefinovane promenne
    while($zaz = mysql_fetch_assoc($prikaz))
    {
      $email = $zaz['email'];
      if ($email2 !== $email)  //to musi byt tady, protoze si predstav souslednost:
      //1. projdeme nekolikrat smyckou a nacteme nekolik vzkazu pro jednoho uzivatele
      //2. pri dalsim pruchodu narazime na jineho uzivatele:
      //    2.1 odesleme pripravenou zpravu pro nacteneho uzivatele
      //    2.2 az ted se zabyvame zpravou pro dalsiho uzivatele
      {
        $email2 = $email;
        $vzkaz_s = $vzkaz.$vzkaz2.$vzkaz3;
        if(mail($email2, $predmet, $vzkaz_s, "From: vzkaznik@test.cz")) {
          echo "Odesláno";
        } else {
           echo "neodesláno";
        } //docela podstatna informace, jeste tam muzes pridat na ktery mail se to nepovedlo
        $vzkaz2 = ''; //vynulujeme pro dalsiho uzivatele
      }
    
      $cas_poslani = $zaz['time_send'];
      $upr_cas = StrFTime("%d.%m. %H:%M", $cas_poslani);
      $text = $zaz['text'];
      if ($cislo == 1) {$email2 == $email;}
      $text = iso2ascii($text);
      $vzkaz2.= "Datum: $upr_cas\n Vzkaz: $text \n\n"; //vzkaz neprepiseme, ale pridame
    }
  }

Netestoval jsem to, možná jsou tam i tak chyby, ale aspoň tě to snad nakopne kudy dál ;)
fajzen
Profil
$prikaz = MySQL_Query("SELECT u.email, v.time_send, v.text, v.id_uziv_kdo from uzivatele u join nastaveni_uziv n on u.id = n.id_uziv join vzkazy v on n.id_uziv = v.id_uziv_komu where n.send_mess=1 and v.precteno=0 order by u.email, v.time_send desc");
  $num = mysql_num_rows($prikaz);
  $email_pred= '';
  $vzkaz_spol= '';
  if($num > 0)
  {
    $vzkaz1 = "Neprecteny vzkaz z test.cz\n\n";
    $vzkaz2 = "Vzkaz byl automaticky zaslan z Vaseho vzkazniku na http://www.mp3stahuj.cz pro pripadnou odpoved na vzkaz se prihlaste do vzkazniku. \n Zmenit frekvenci zasilani neprectenych vzkazu, pripadne zrusit zasilani muzete provest ve Vasem vzkazniku.";
    $predmet = "Neprecteny vzkaz z test.cz";

    while($zaz = mysql_fetch_assoc($prikaz))
    {
    $email = $zaz['email'];
    if(empty($email_pred)) { $email_pred= $email; }
    $cas_poslani = $zaz['time_send'];
    $upr_cas = StrFTime("%d.%m. %H:%M", $cas_poslani);
    $text = $zaz['text'];
    $text = iso2ascii($text);
    $vzkaz = "Datum: $upr_cas\n Vzkaz: $text \n\n";

    if ($email_pred !== $email) 
    {
      $email_pred = $email;
      $vzkaz_s = $vzkaz1.$vzkaz_s.$vzkaz2;
      if(mail($email, $predmet, $vzkaz_s, "From: vzkaznik@test.cz"))
      echo "Odesláno";
      $vzkaz_s= $vzkaz;
    } else {
      $vzkaz_s.= $vzkaz;
    }
    }
  }
fajzen
Profil
neskoro :)
davef6
Profil
děkuju, vyzkouším
davef6
Profil
AM_

email se odešle, ale bez obsahu který je uložen v $vzkaz2

fajzen

toto mi nejde vůbec
davef6
Profil
vyřešeno

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: