Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28

Discussione: implode e array

  1. #1

    implode e array

    osservate questo codice

    Codice PHP:
    $righe = array(); 
    while (
    $riga mysql_fetch_assoc($presente)) 
    $righe[] = '"' implode('","'$riga) . '"'
    $email implode(", "$righe); 
    in pratica mi tira fuori un elenco di caselle email da una query ovvero "xxx@email.it", "xxxx@fastwebnet.it", "xxxx@excite.it" ecc.

    Ora vorrei sostituire il sottostante array con il risultato dell'implode esposto qui sopra:

    $aindirizzi = array("xxx@email.it", "xxxx@fastwebnet.it", "xxxx@excite.it", ecc.);

    avevo pensato di fare così ma non funziona....


    Codice PHP:
    <?php  .... require("../../class.phpmailer.php"); .... 
    $aindirizzi $email
    foreach (
    $aindirizzi as $destinatario)  
    $mail = new PHPMailer();  $mail->SetLanguage("it","./");  $mail->IsSendmail();                                   // send via SMTP  
    $mail->Host     = ....  ?>
    chi mi sa aiutare?
    grazie

  2. #2
    Non funziona perche' $email e' una stringa e non un array. Non mi e' chiara la struttura della tabella, ogni riga contiene un indirizzo o piu' d'uno in diversi campi? Comunque il succo e' che devi estrarre gli indirizzi dal database e registrarli uno per uno in un array.

  3. #3
    il primo codice che ho indicato è un file richiamato dalla funzione include perchè quel codice lo dovrei ripetere in 10 pagine differenti e aggiungere ogni volta un indirizzo email mi viene male...

    allora attualmente quel codice mi tira fuori $aindirizzi=""xxx@xx.it", "xxx@xx.it", ecc....
    (osservare errore doppio 'doppio apice' iniziale!)

    c'è una maniera per far si' che quel codice mi tiri fuori in automatico $aindirizzi=array("xxx@xx.it", "xxx@xx.it", ecc...) ?

  4. #4
    nessuna buona anima che mi posso aiutare?

  5. #5
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    se ho capito bene
    Codice PHP:
    // i backslash prima dei doppi apici, che dovresti cambiare con quelli singoli
    $email "\"xxx@email.it\", \"xxxx@fastwebnet.it\", \"xxxx@excite.it\"";

    $aindirizzi explode(","$email);

    foreach (
    $aindirizzi as $destinatario)   
    $mail = new PHPMailer();  $mail->SetLanguage("it","./");  $mail->IsSendmail();                                   // send via SMTP   
    $mail->Host     = ....  ?> 
    mi viene un dubbio però: fai implode su $righe che è già un array, perché non usi direttamente quello?

  6. #6

  7. #7
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    ... facciamo che spieghi esattamente cosa vuoi fare va...

    per la cronaca, quello che ti ho postato io prende un testo e lo fa diventare un array esplodendolo per un separatore, poi prosegue con quello che serve fare a te

  8. #8
    ok mi siegherò meglio...

    attualmente ho una decina di pagine fatte così

    Codice PHP:
    $aindirizzi = array("xxxx@email.it""xxxxx@fastwebnet.it""xxxx@excite.it"ecc.);
    foreach (
    $aindirizzi as $destinatario)  
    $mail = new PHPMailer();  $mail->SetLanguage("it","./");  $mail->IsSendmail();                                   // send via SMTP  
    $mail->Host     = ....
    $mail->AddAddress($destinatario);.... 
    Ogni volta che devo aggiungere un nuovo indirizzo email di un iscritto dovrei aggiungerlo in tutte e 10 le pagine ed è un po' una scocciatura....allora dicevo: perchè non prelevare una sola volta gli indirizzi e-mail dalla tabella degli iscritti senza dover modificare ogni volta 10 pagine?

    ed ecco che avevo tirato fuori questa query che mi tira fuori tutti gli indirizzi e-mail:

    Codice PHP:
    $query_presente "SELECT email FROM users WHERE socioordinario = 1"
    $presente mysql_query($query_presente$server) or die(mysql_error()); 
    $row_presente mysql_fetch_assoc($presente); 
    $totalRows_presente mysql_num_rows($presente); 
    ora però c'è da risolvere il problema di andare a sostituire

    Codice PHP:
    $aindirizzi = array("xxxx@email.it""xxxxx@fastwebnet.it""xxxx@excite.it"ecc.); 
    con un implode del risultato della query ovvero brutalmente:

    Codice PHP:
    $aindirizzi = array(risultato della query con tutte le email tra doppi apici e suddivise ciascuna con virgola); 
    come si può fare?

  9. #9
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    mysql_fetch_assoc è già un array, che contiene i risultati
    puoi fare così
    Codice PHP:
    $query_presente "SELECT email FROM users WHERE socioordinario = 1";  
    $presente mysql_query($query_presente$server) or die(mysql_error());  
      
    $totalRows_presente mysql_num_rows($presente);

    while (
    $row_presente mysql_fetch_assoc($presente)) {
        
    $destinatario "\"$rowpresente\"";
        
    $mail = new PHPMailer();  $mail->SetLanguage("it","./");  $mail->IsSendmail();
        
    // send via SMTP   
        
    $mail->Host     = .... 
        
    $mail->AddAddress($destinatario);....


  10. #10
    cosi' avevo provato ma mi dà questo errore:

    invalid address "array" you must provide at least one recipient email address

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.