• User

    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:
    [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);

            }
    

    [/php]vorrei riuscrire modificando il select di SQL ,MA MI STO PERDENDO...QUALCUNO PUO AIUTARMI??
    GRAZIE MILLE!!


  • User Attivo

    Premetto che con le INNER JOIN mi perdo anche io, potresti estrarre l'id degli utenti e ciclarli. All'interno del ciclo metti la tua query con la clausola WHERE u.id = $user_id*.


  • User

    un piccolo esempio??

    grazie


  • User Attivo

    Io farei così, tieni presente che non so come sono strutturate le tue tabelle.

    [php]
    $user_id = array();
    $sql = 'SELECT id FROM tabella_utenti';
    $result = mysql_query($sql);
    while($row= mysql_fetch_row($result))
    {
    $user_id[] = $row['id'];
    }
    for($i= 0; $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*;
    $result=$db->query($sSQL);
    $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);

    }[/php]


  • User

    Questa e' la tabella listings:

    id int(11)
    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
    **


  • User

    @alver said:

    Questa e' la tabella listings:

    id int(11)
    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
    **

    eventualmente con un cicle while ??

    che ne dici,hai qualche idea??
    ciao grande!


  • User

    non capisco,ma mi da errore qui:

    [php]$id=$rs['id'];[/php]qualche idea??

    grazie


  • User

    che ne dici,hai qualche idea??
    ciao grande![/quote]


  • User

    non funziona,avete qualche altra soluzione?

    pietà per l'ignoranza!!

    grazie


  • User Attivo

    [PHP]$rs=$result->fetch()[/PHP]

    Mi sono scordato il punto e virgola :giggle:


  • User

    ok ho trovato solo che non funziona!
    ho fatto cosi:

    $user_id = array();
    $sSQL = "SELECT id FROM ".PREFIX."users";
    $result = mysql_query($sSQL);
    while($row= mysql_fetch_row($result))
    {
    $user_id[] = $row['id'];
    }
    for($i= 0; $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*;
    $result=$db->query($sSQL);
    $rs=$result->fetch();
    $id=$rs['id'];
    ecc,ecc,

    ma non funziona! hai dato un'occhiata alle tabelle?
    dovrebbe funzionare,ma!!


  • User Attivo

    Si ho visto, non ti restituisce nulla ?
    Intanto cambia
    [php]display='Y' [/php]con
    [php]p.display='Y' [/php]Altrimenti prova a cambiare la query così :
    [php]$sSQL = "SELECT p.id, p.owner, p.orderID, p.title, p.dateadded, u.email, u.firstname, u.lastname
    FROM ".PREFIX."listings p, ".PREFIX."users u
    WHERE p.owner=u.id
    AND p.display='Y'
    AND u.id=" . $user_id*;
    [/php]


  • User

    manca qualcosa,?? per il momento nada!! sto a schiatta...se mi risolvi sta cosa ,vengo a ringrazziarti a casa!!

    thanks

    come ti ripeto .... prima inviava a tutti gli utenti,tutte le email per ogni annuncio,contenente tutti gli annunci del'utente stesso,richiamati nel file .tpl

    stavo pensando a cosa serve correggere display='Y' in p.display='Y' visto che filtra i risultati dalla cartella listings,quelli attivi

    grazie ancora!


  • User

    @alver said:

    manca qualcosa,?? Per il momento nada!! Sto a schiatta...se mi risolvi sta cosa ,vengo a ringrazziarti a casa!!

    Thanks

    come ti ripeto .... Prima inviava a tutti gli utenti,tutte le email per ogni annuncio,contenente tutti gli annunci del'utente stesso,richiamati nel file .tpl

    stavo pensando a cosa serve correggere display='y' in p.display='y' visto che filtra i risultati dalla cartella listings,quelli attivi

    grazie ancora!

    qualche novita!!