Piccolo dilemma con impolode

otto9due

Utente Attivo
22 Feb 2014
591
25
28
Devo inserire una serie di nominativi con relativa email in una variabile, avendoli prima estratti dal db, avevo pensato ad implode che solamente con il campo mail funziona ma con due campi come faccio?

PHP:
// dopo aver estratto i miei dati dal db...
			foreach ($dests as $dest) {
			   	$this->id = $dest["id"];
				$this->nomedest = $dest["nome"];
				$this->emaildest = $dest["email"];
			}
			// qui mi da l'errore ovviamente.. qualche idea?
			$mailinglist = implode(", ", $this->nomedest." <'".$this->emaildest."'>");
			$destmail = 'Bcc: "'.$mailinglist.'"';			
			
			return $destmail;

Lo schema che dovrei seguire per inserire tutte le mail e i nominativi è questo:
PHP:
$destmail = "Bcc: nome <nome@domain.com>, nome2 <nome2@domain.com>";
e continuare.. Qualche idea?
 
Ciao,
da solo l'implode non è sufficiente, ma potresti fare così:
PHP:
$pattern = '%s <%s>';
$destlist = array();

foreach ($dests as $dest) {
    $destlist[] = sprintf($pattern, $dest["nome"], $dest["email"]);
}

$destmail = 'Bcc: ' . implode(', ', $destlist);

return $destmail;
 
Mi sa che c'è qualche errore ma non capisco dove..

PHP:
protected function CreateDest()
		{
			include "../db/connection.php";
			// Estraggo i destinatarii da db  
			  try
			{
			  $sql = 'SELECT nome, email FROM users WHERE inviato=0 AND ver=1 ORDER BY nome DESC LIMIT 99';
			  $result = $pdo->query($sql);
			}
			catch (PDOException $e)
			{
			  $error = 'Error: ' . $e->getMessage();
			  include '../db/ERRORDB/outputpage.php';
			  exit();
			}     
			foreach ($result as $row)
			{
			  $dests[] = array(
				'nome' => $row['nome'],
				'email' => $row['email']
			  );
			}
			// fine estrazione destinatari da db
			$pattern = '%s <%s>';
			$destlist = array();
			
			foreach ($dests as $dest) {
				$destlist[] = sprintf($pattern, $dest["nome"], $dest["email"]);
			}
			
			$destmail = 'Bcc: ' . implode(', ', $destlist);
			
			
			return $destmail;  
			
		}
 
Invalid argument supplied for foreach() in /web/htdocs/www.miosito.it/home/funzioni/newsletter/newsletter.class.php on line 36

Dove per line 36 intende..

PHP:
foreach ($dests as $dest) {..
 
Se $dests non è stato valorizzato significa che probabilmente la query non trova nessun risultato.
 
No, no, era solo un punto che non andava..
Ho eliminato
PHP:
            $destlist = array();

Ora va ..

Grazie mille per l'intervento, studierò meglio sprintf() che non conoscevo prima d'ora..
 

Discussioni simili