Recupero acquisti e anagrafico cliente contemporaneamente

helpdesk

Utente Attivo
30 Set 2009
726
0
16
Pesaro
Formattazione corretta acquisti

Ragazzi dovrei recuperare anagrafico cliente e i suoi acquisti.
Ci sono riuscito però stranamente mi salta il primo acquisto e parte dal secondo e non riesco a formattare bene gli acquisti nel senso che nella mail compaio così:
Nome Prodotto : <br>Nome Prodotto :6.Maschera rivitalizzante Orhis,6.Maschera rivitalizzante Orhis,6.Maschera rivitalizzante Orhis
Dovrebbero apparire così:

Nome Prodotto : Maschera rivitalizzante Orhis
Nome Prodotto : Maschera rivitalizzante Orhis
Nome Prodotto : Maschera rivitalizzante Orhis

dove sbaglio?

PHP:
<?php
  session_start();
  mia_connessione_db.....

  if(isset($_SESSION['id_utenti'])){

  $Mail="info@mail.com";
  
  $sql = mysql_query("SELECT * FROM iscritti WHERE id_utenti=".$_SESSION['id_utenti']); 
  $riga = mysql_fetch_array($sql);
  $sql2 = mysql_query("SELECT * FROM acquisti WHERE id_utenti=".$_SESSION['id_utenti']); 
  $riga2 = mysql_fetch_array($sql2);
  
  
  while($riga2=mysql_fetch_array($sql2)){
  $dati2[]= $riga2['nome_prodotto'];
 
  echo "<br>Nome Prodotto : ".implode(",",$dati2); 
  $ris="<br>Nome Prodotto :".implode(",",$dati2); 
  
  }
  
  $dati[]= $riga['user_utente'];
  $dati[]= $riga['password_utente'];
  $dati[]= $riga['nome'];
  $dati[]= $riga['cognome'];
  $dati[]= $riga['indirizzo'];
  $dati[]= $riga['luogo'];
  $dati[]= $riga['provincia'];
  $dati[]= $riga['cap'];
  $dati[]= $riga['telefono'];
  $dati[]= $riga['cell'];
  $dati[]= $riga['fax'];
  $dati[]= $riga['mail'];
  $dati[]= $riga['cfpi'];
  
  echo "Dati=".implode(",",$dati); 

  $to = $Mail; 
  $subject = "Avviso acquisto "; 
  $USER="\n User :";
  $MAIL="\n E.mail :";
  $NOME="\n Nome :";
  $COGNOME="\n Cognome :";
  $INDIRIZZO="\n Indirizzo:";
  $CITTA="\n Citta :";
  $PROVINCIA="\n Provincia :";
  $CAP="\n Cap :";
  $TELEFONO="\n Telefeno :";
  $CELL="\n Cellulare:";
  $CODICEFISCALE="\n Codice Fiscale:";
  $NOME_PRODOTTO="\n Nome Prodotto :";
  
  $server="server";
  $messaggio = $messaggio;
  $messaggio .= "\n Acquisto completata con successo!
  \n E' stato effettuato uno o più acquisti presso lo shop Beauty Luxury
  \n QUESTA MAIL CONTIENE I DATI DI SPEDIZIONE DEL CLIENTE SERVE A FORNIRE I DATI PER SPEDIRE LA MERCE.
  \n Riepilogo anagrafico cliente:";
  $messaggio .= "\n\n-------------------------------------\n"; 
  $messaggio .= "\n E.mail inviata da: www.server.it
  
  $NOME $dati[2]
  $COGNOME $dati[3]
  $INDIRIZZO $dati[4]
  $CITTA $dati[5]
  $PROVINCIA $dati[6]
  $CAP $dati[7]
  $TELEFONO $dati[8]
  $CELL $dati[9]
  $MAIL $dati[11]
  $CODICEFISCALE $dati[12]
  $NOME_PRODOTTO $ris
  $MAIL $Mail "; 
  $headers = "From: ".$server ." <" .$Mail.">\n"; 
    
  if(@mail($to, $subject, $messaggio, $headers)){ 
  echo "answer=ok"; 
  }else{ 
  echo "answer=error"; 
  } 


  }else{

  echo"Dati non recuperati"; 

  }

?>
 
Ultima modifica:
ti estrae dalla seconda riga in poi perché la prima è stata già estratta:
PHP:
// qui estrae la prima
$riga2 = mysql_fetch_array($sql2);
// qui tutte le altre dalla seconda in poi 
while($riga2=mysql_fetch_array($sql2)){

Elimina:
PHP:
$riga2 = mysql_fetch_array($sql2);
non ti serve

Per quanto riguarda il secondo problema, devi inviare la mail in formato HTML, altrimenti i tag tipo <br> non verranno interpretati.
 
Ciao Eliox , grazie mille per la prima dritta modifico subito.
Per la seconda non ricordo come si manda una mail in formato html ma ho il tuo corso e li lo insegni quindi sotto con il ripasso :)
Grazie :)
 
Ciao Eliox, ho modificato qualcosina e quindi anche senza mandarla in formato HTML mi starebbe anche bene la formattazione poichè mostra prima il nome prodotto e sotto la quantità.
Il problema è che mi mostra solo il primo prodotto e relativa quantità nella mail per via del fatto che sono fuori dal ciclo while ma se metto dentro tutto manda tante mail quanti prodotto cosa devo fare?

PHP:
<?php
  session_start();

  connessione_db....

  if(isset($_SESSION['id_utenti'])){

  $Mail="info@server.com";
  

  $sql2 = mysql_query("SELECT * FROM acquisti WHERE id_utenti=".$_SESSION['id_utenti']); 
 
  while($riga2=mysql_fetch_array($sql2)){
  
  $dati2[]= $riga2['nome_prodotto'];
  $dati2[]= $riga2['quantita'];
  $ris=$riga2['nome_prodotto']; 
  $quant=$riga2['quantita'];
  //echo "<br>Nome Prodotto : ".$ris." |"," Quantità : ".$quant; 
  //echo"<br>Nome Prodotto: ".$NOME_PRODOTTO." |"," Quantità : ".$QUANTITA;

  }

  $to = $Mail; 
  $subject = "Avviso acquisto "; 
 
  $NOME_PRODOTTO="\n Nome Prodotto :";
  $QUANTITA="\n Quantità :";
  
  $server="BeautyLuxury";
  $messaggio = $messaggio;
  $messaggio .= "\n Acquisto completata con successo!
  \n E' stato effettuato uno o più acquisti presso lo shop 
  \n QUESTA MAIL CONTIENE I DATI DI SPEDIZIONE DEL CLIENTE SERVE A FORNIRE I DATI PER SPEDIRE LA MERCE.
  \n Riepilogo acquisti e anagrafico cliente:";
  $messaggio .= "\n\n-------------------------------------\n"; 
  $messaggio .= "\n E.mail inviata da: www.server.it
  
  $NOME_PRODOTTO $ris
  $QUANTITA $quant
  $MAIL $Mail "; 
  $headers = "From: ".$server ." <" .$Mail.">\n"; 
    
  if(@mail($to, $subject, $messaggio, $headers)){ 
  echo "answer=ok"; 
  }else{ 
  echo "answer=error"; 
  } 
  }else{

  echo"Dati non recuperati"; 

  }

?>
 
Ho risolto.
L'unica stranezza è che mi compare sotto sempre l'indirizzo mail così:

ACQUISTO:

Nome Prodotto : crema contorno occhi Orhis Paris

Quantità : 1

E.mail : info@server.com
ACQUISTO:

Nome Prodotto : 6.Maschera rivitalizzante Orhis

Quantità : 2

E.mail : info@server.com
ACQUISTO:

Nome Prodotto : crema contorno occhi Orhis Paris

Quantità : 1

E.mail : info@server.com.

da cosa è dovuto?

Ho messo nel ciclo while solo questo e funziona però manda sempre la mail
se provo a togliere $MAIL $Mail "; mi da errore


while($riga2=mysql_fetch_array($sql2)){

$dati2[]= $riga2['nome_prodotto'];
$dati2[]= $riga2['quantita'];
$ris=$riga2['nome_prodotto'];
$quant=$riga2['quantita'];
$server="BeautyLuxury";
$messaggio = $messaggio;
$messaggio .= "\n ACQUISTO:";
$messaggio .= "
$NOME_PRODOTTO $ris
$QUANTITA $quant
$MAIL $Mail ";

}
 

Discussioni simili