estrazione da tre campi userid staffid adminid tramite gli id ,l email

ciao gianni ho un problema, io ho una tabella che ha 4 campi , userid staffid adminid eccc,

adesso dovrei fare una funzione che controlli dentro questi campi  userid staffid adminid vede l i che c e , e tramite il seguente id estrae da un altra tabella l email che fa parte del seguente id , però l email , la deve trovare in tre tabelle    perche se un utente ha postato il messaggio  dentro il campo userid ci sarà l id del utente ,effetta il controllo nella tabella dove sono gli utenti registrati ed estrae l email ,e la stessa cosa è anche se il messaggio lo scrive un membro dello staff  adesso cosa potre fare?  ho provato tantei modi ma niente da fare  ho anche provato con un unica query a effettuare il controllo ma mi da che non esistono le tab nel database  mi daresti una mano percortesia grazie

l$controlAutor = mysql_query(" SELECT a.id , b.id , c.id ,d.userid ,d.staffid , d.adminid  FROM   a.user , b.staff , c.amministrator , d.ticket_message WHERE  a.id=d.userid AND    b.id=d.staffid AND    c.id=d.adminid ") or die ("ERRORE :::::::::::".mysql_error());

inviato 7 anni fa
roccochiolo
X 0 X

mi aguro ch qual cuno risponda comunque ho provato a modificare la query , ma non riesco tramite funzione a estrarre l emailfunction Autormessage($userid , $staffid, $adminid) {   global  $userid, $staffid, $adminid ; $controlAutor = mysql_query(" SELECT A. * , B. * , C. *  ,D. `userid` , D. `staffid` , D. `adminid` FROM   `user` A, `staff` B, `amministrator` C, `ticket_message` D WHERE  A.`id` = D.userid AND    B.`id` = D.staffid AND    C.`id` = D.adminid ") or die ("ERRORE :::::::::::".mysql_error()); $mails = array(); if($controlAutor) {  echo "ok";      while($curr = mysql_fetch_array($controlAutor))           {          /* array_push($mails,$curr['email']); */        echo $curr['email'];           }

    }    else {     echo "ERRORE :::::::::::>";     return null; }

} $autoreMessTicket = Autormessage($userid , $staffid, $adminid); /* if($autoreMessTicket and is_array($autoreMessTicket)){    foreach($autoreMessTicket as $key => $value)      echo $value; } else {     echo "ERRORE :::::::::::> Nessuna mail trovata"; }*/ echo $autoreMessTicket;

risposto 7 anni fa
roccochiolo
X 0 X

Potresti procedere con 2 query. La prima estrae l'id e la seconda recupera la mail associata a quell'id

 :bye:

risposto 7 anni fa
Gianni Tomasicchio
X 0 X

ciao gianni e grazie il problema e uno che le tabelle sono una dove viene postato il messaggio, e ci sono tre userid staffid adminid, e altre 3 tabelle user staff admin quindi dammi un consiglio

function Autormessage($userid , $staffid, $adminid)
{
  global  $userid, $staffid, $adminid ;

$controlAutor = mysql_query("
      SELECT A.* , B.*, C.* ,D.*
FROM   `ticket_message` A,`user`  B , `staff` C , `amministrator`D 
WHERE  A.userid  = B.id  
OR    A.staffid = C.id  
OR    A.adminid = D.id 
ORDER BY A.id DESC" )
or die ("ERRORE :::::::::::".mysql_error()); 
$mails = array();

if($controlAutor)
{   
    while($curr = mysql_fetch_array($controlAutor))
         {
         //array_push($mails,$curr['userid']); 
       //$pippo = mysql_num_rows($controlAutor);
        echo $curr['userid']."-----";
        echo $curr['staffid']."-----";
        echo $curr['adminid']."-----";
        echo $curr['id'];
        echo $curr['email']."<br>";
       //echo '<pre>';
       // print_r($curr);
       //echo '</pre>';
       
        }
     }
 else
{
    
    return null;

}


}

il primo idi me lo da gli altri no  perche ,poi se sostituiso gli or con and non mi da niente

risposto 7 anni fa
roccochiolo
X 0 X

ciao ho segguito il tuo messaggio, ma non mi restituisce l email giusta  ti fo vederefunction Autormessage($userid , $staffid, $adminid) {   global  $userid, $staffid, $adminid ;

 $estrzioneIdMrssage  = mysql_query("  SELECT userid,staffid,adminid  FROM ticket_message ORDER BY id DESC")or die ("ERRORE :::::::::::".mysql_error());    if ($estrzioneIdMrssage){  while($row = mysql_fetch_array($estrzioneIdMrssage)){

$controlAutor = mysql_query(" SELECT A.* , B.*, C.* FROM   `user`  A , `staff` B , `amministrator`C WHERE   A.id  = ". $row['userid']  ." OR      B.id  = ". $row['staffid'] ."  OR     C.id  = ". $row['adminid'] ." " ) or die ("ERRORE :::::::::::".mysql_error()); $mails = array();

if($controlAutor) {        while($curr = mysql_fetch_array($controlAutor))          {          //array_push($mails,$curr['userid']);        //$pippo = mysql_num_rows($controlAutor);         echo $row['userid']. "--->";         echo $row['staffid']."--->";         echo $row['adminid']."--->";

        echo $curr['email']."<br>";        //echo '<pre>';        // print_r($curr);        //echo '</pre>';                }      }  else {         return null;

   }   }  } }

risposto 7 anni fa
roccochiolo
X 0 X

Dalla prima SELECT devi leggere l'unico ID presente e non tutti e tre. Poi con questo id devi cercare la mail.

 :bye:

risposto 7 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda