Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Problema ad inviare dati via mail

    Ciao a tutti,

    ho un problema con uno script che mi invia dei dati presi da una tabella di un db via mail,
    il codice è il seguente:

    Codice PHP:
    <?php
    mysql_connect
    ("a","b","c");
    mysql_select_db("db3");
    $dati=mysql_query("
    SELECT * 
    FROM anagrafica 
    WHERE id_contatti = 
    $filtro ");

    $mittente 'email@sito.it \r\n'
    $header .= "MIME-Version: 1.0\n";
    $header .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
    $header .= "Content-Transfer-Encoding: 7bit\n\n";
    $destinatario "destinatario@sito.it"
    $oggetto "<html><body>Richiesta preventivo"
    $messaggio "Testo email".
    $NumEntries=mysql_num_rows($dati).
    while(
    $array=mysql_fetch_array($dati)){ // riga segnalata per l'errore
    echo"<table>
    <tr>
    <td>Nome</td>
    </tr>
    <tr>
    <td>
    $array[Nome]</td>

    </tr></table></body></html>
    "
    ;
    }
    mail($destinatario$oggetto$messaggio$mittente); 



     
    mysql_free_result($dati);
    ?>
    ricevo l'errore

    Parse error: syntax error, unexpected T_WHILE alla riga segnalata potere aiutarmi a risolvere?

  2. #2
    up, nessuno riesce ad aiutarmi?

  3. #3
    che io sappia nn puoi concatenare col punto l'output di un while. Usa una stringa di appoggio tipo così:
    codice:
    mysql_connect("a","b","c"); 
    mysql_select_db("db3"); 
    $dati=mysql_query(" 
    SELECT * 
    FROM anagrafica 
    WHERE id_contatti = $filtro "); 
    
    $strwhile="<table>";
    while($array=mysql_fetch_array($dati)){ // riga segnalata per l'errore 
    $strwhile.="
    <tr> 
    <td>Nome</td> 
    </tr> 
    <tr> 
    <td>$array[Nome]</td> 
    
    </tr>
    "; 
    }
    $strwhile.="</table></body></html>";
     
    $NumEntries=mysql_num_rows($dati);
    
    $mittente = 'email@sito.it \r\n'; 
    $header .= "MIME-Version: 1.0\n"; 
    $header .= "Content-Type: text/html; charset=\"iso-8859-1\"\n"; 
    $header .= "Content-Transfer-Encoding: 7bit\n\n"; 
    $destinatario = "destinatario@sito.it"; 
    $oggetto = "<html><body>Richiesta preventivo"; 
    $messaggio = "Testo email". $NumEntries . " " . $strwhile;
    mail($destinatario, $oggetto, $messaggio, $mittente);
    Ho editato perché mi son accorto che era sbagliata anche la generazione della tabella.

  4. #4
    hai messo un punto invece di un punto e virgola subito prima del while.
    un appunto: nel while stampa solo le righe della tabella altrimenti apri e chiudi tante tabelle quante sono le riche selezionate dal db.

  5. #5
    che c.....e più tardi provo e vi faccio sapere!

    grazie!

  6. #6
    Originariamente inviato da bionicoz
    che io sappia nn puoi concatenare col punto l'output di un while. Usa una stringa di appoggio tipo così:
    codice:
    mysql_connect("a","b","c"); 
    mysql_select_db("db3"); 
    $dati=mysql_query(" 
    SELECT * 
    FROM anagrafica 
    WHERE id_contatti = $filtro "); 
    
    $strwhile="<table>";
    while($array=mysql_fetch_array($dati)){ // riga segnalata per l'errore 
    $strwhile.="
    <tr> 
    <td>Nome</td> 
    </tr> 
    <tr> 
    <td>$array[Nome]</td> //nuovo errore
    
    </tr>
    "; 
    }
    $strwhile.="</table></body></html>";
     
    $NumEntries=mysql_num_rows($dati);
    
    $mittente = 'email@sito.it \r\n'; 
    $header .= "MIME-Version: 1.0\n"; 
    $header .= "Content-Type: text/html; charset=\"iso-8859-1\"\n"; 
    $header .= "Content-Transfer-Encoding: 7bit\n\n"; 
    $destinatario = "destinatario@sito.it"; 
    $oggetto = "<html><body>Richiesta preventivo"; 
    $messaggio = "Testo email". $NumEntries . " " . $strwhile;
    mail($destinatario, $oggetto, $messaggio, $mittente);
    Ho editato perché mi son accorto che era sbagliata anche la generazione della tabella.
    adesso mi da questo errore:
    Parse error: syntax error, unexpected T_STRING, expecting ']' dove ho inserito il commento nuovo errore

  7. #7
    le virgolette....
    codice:
    array['Nome']
    sempre che il tuo campo si chiami Nome, con la maiuscola.
    Ah, dimenticavo nn puoi usare l'array così dentro la stringa, salvati quel valore in una stringa temporanea prima di usarla. tipo così:

    Codice PHP:
    while($array=mysql_fetch_array($dati)){ 
    $nome=$array['Nome'];
    $strwhile.="
    <tr> 
    <td>Nome</td> 
    </tr> 
    <tr> 
    <td>
    $nome</td>

    </tr>
    "



  8. #8
    con gli apici ho provato già e mi da questo errore:
    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING nella stessa riga

  9. #9
    [PHP
    ]$strwhile.="
    <tr>
    <td>Nome</td>
    <td>Cognome</td>
    </tr>
    <tr>
    <td>$array[Nome]</td> //nuovo errore
    <td>$array[Cognome]</td>[/PHP]

    c'è da dire che voglio inserire altri dati tipo come sopra, è per questo motivo che non funge?

    ps ho provato sia con che senza apici.

  10. #10
    up!

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.