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

    php msql invio dati per email

    ciao a tutti,dopo giorni di prove e riprove ho dovuto chiedere aiuto a voi,sto richiamando questa funzione per inviare statistiche per ogni utente,con i suoi rispettivi annunci.Funziona solo che per ogni annuncio mi invia un'email che contiene tutti gli annunci;io invece vorrei che inviasse solo un'email con tutti gli annunci del' owner ...questo e' il codice:


    Codice PHP:
    $sSQL "SELECT p.id,p.owner,p.orderID,p.title,p.dateadded,u.email,u.firstname,u.lastname FROM ".PREFIX."listings AS p INNER JOIN ".PREFIX."users AS u ON p.owner=u.id AND display='Y' 

    "
    ;  
    $result=$db->query($sSQL);     
    $numrows $result->size();                         
    while(
    $rs=$result->fetch())       
              
      { 
       
    $id=$rs['id'];     
       
    $owner=$rs['owner'];    
       
    $userid=$rs['owner'];      
       
    $title=safeStripSlashes($rs['title']);       
       
    $datelisted=$rs['dateadded'];          
       
    $to=$rs['email'];            
       
    $vars['title']=$title;         
       
    $vars['firstname']=$rs['firstname'];              
       
    $vars['lastname']=$rs['lastname'];     
       
    $class_tpl->assign('location',$userid);         
       
    $content="utenti_report.tpl";            
       
    $class_tpl->assign('location',$userid);      
        
    $msg=$Mailer->sendMail($to$content,$vars);               
                   } 
    vorrei riuscrire modificando il select di SQL ,oppure tramite il $result ,MA MI STO PERDENDO...QUALCUNO PUO AIUTARMI??
    GRAZIE MILLE!!

  2. #2
    Premesso che non so che report stai inviando, che non conosco la classe che usi e che non so come sono strutturati i tuoi report, a occhio e croce direi che devi tirar fuori il comando per inviare l'e-mail dal while. In questo modo eviti che ti invii un'email per ogni record estratto dalla query.
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  3. #3
    un esempio??

    grazie

  4. #4
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    visto che non conosciamo molto del tuo codice non è facile fare un esempio.

    Consiglio di fare due query e due cicli while uno dentro l'altro.

    La prima query ti serve a trovare gli owners e li cicli uno alla volta.

    All'interno del ciclo (dove hai quindi 1 solo utente per volta) fai una query che ti estrai i dati del singolo utente e che invia la mail.

  5. #5
    riesci a farmi un piccolo esempio con x y giusto per capire meglio??

    scusa,ciao

  6. #6
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Codice PHP:
    $Q1=mysql_query('SELECT * FROM Utenti');
    while (
    $U=mysql_fetch_assoc($Q1)){
       
    $Q2=mysql_query('SELECT * FROM listings WHERE UserId='.$U['id']);
       while (
    $D=mysql_fetch_assoc($Q2)){
          
    $vars['title']=$D['title'];
          ... 
    // inserisce nell'array gli altri valori
       
    }
       
    spedisci_la_mail($vars);


  7. #7
    non ci cavo le penne!

    queste sono le due tabelle:

    Questa e' la tabella listings:


    id
    owner
    title
    section
    shortDescription
    description
    featured
    price
    display
    hitcount
    dateadded
    expiration
    url
    notified
    searchcount
    repliedcount
    pBold
    pHighlighted
    notes
    orderID

    e questa e' la tabella users:

    id
    custip
    firstname
    lastname
    address
    city
    state
    zip
    country
    email
    phone
    newsletter
    username
    password
    level

    grazie a tutti!!

  8. #8
    ho fatto cosi,ma non invia email:

    Codice PHP:
    $user_id = array();
     
    $sSQL "SELECT id FROM ".PREFIX."users";
     
    $result mysql_query($sSQL);
     while(
    $rowmysql_fetch_row($result)) 
    {  
    $user_id[] = $row['id'];
     } 
    for(
    $i0$i sizeof($user_id); $i++) 

     
    $sSQL "SELECT p.id,p.owner,p.orderID,p.title,p.dateadded,u.email,u.firstname,u.lastname FROM ".PREFIX."listings AS p INNER JOIN ".PREFIX."users AS u ON p.owner=u.id AND display='Y' WHERE u.id=" $user_id[$i];
     
    $result=$db->query($sSQL); 
    $rs=$result->fetch(); 
    $id=$rs['id'];
    $to=$rs['email'];
    $vars['title']=$title;
    $vars['firstname']=$rs['firstname'];
    $vars['lastname']=$rs['lastname'];
    $content="tuoreport_report.tpl";
    $msg=$Mailer->sendMail($to$content,$vars); 
    che ne dici?? grazie

  9. #9
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Ehh. dico che hai complicato il tuo codice iniziale, ma non ne hai sostanzialmente cambiato la logia e quindi non può funzionare (il perchè non mandi l'e-mail è poi un altro problema).

    Devi fare un ciclo esterno che recupera gli id degli utenti ed un ciclo interno che, per ogni id recuperato, trova gli annunci dell'utente.

    Torna a dare un'occhiata al mio codice (pur grezzo ti esemplifica bene cosa intendo).

  10. #10
    ciao,grazie intanto... ti invio le tabella sql ,mi sono perso!!!

    Questa e' la tabella listings:


    id
    owner
    title
    section
    shortDescription
    description
    featured
    price
    display
    hitcount
    dateadded
    expiration
    url
    notified
    searchcount
    repliedcount
    pBold
    pHighlighted
    notes
    orderID

    e questa e' la tabella userrs:

    id
    custip
    firstname
    lastname
    address
    city
    state
    zip
    country
    email
    phone
    newsletter
    username
    password
    level

    vedi se ci riesci,sto a impazzi!!!
    grazie

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.