- Home
- Categorie
- Coding e Sistemistica
- PHP
- php msql invio dati per email
-
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!!
-
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*.
-
un piccolo esempio??
grazie
-
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]
-
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
**
-
@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!
-
non capisco,ma mi da errore qui:
[php]$id=$rs['id'];[/php]qualche idea??
grazie
-
che ne dici,hai qualche idea??
ciao grande![/quote]
-
non funziona,avete qualche altra soluzione?
pietà per l'ignoranza!!
grazie
-
[PHP]$rs=$result->fetch()[/PHP]
Mi sono scordato il punto e virgola
-
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!!
-
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]
-
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!
-
@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!!