Perché mi restituisce tutti gli users

searedone

Utente Attivo
11 Giu 2010
508
0
0
Sera a tutti ....

Ho un piccolo problema ma non riesco a capire

posto lo script :

PHP:
<?php 

class Wall_Updates { 



      
      public function Updates($uid)  
    { 

        $query = mysql_query("SELECT M.msg_id, M.uid_fk, M.message, M.created, U.username FROM messages M, users U  WHERE M.uid_fk=U.uid and  M.uid_fk='$uid' OR M.uid_fk IN (SELECT user_1 FROM relationship AS r WHERE r.user_2 = '$uid' AND r.amico = 'S') OR M.uid_fk IN (SELECT user_2 FROM relationship AS r WHERE r.user_1 = '$uid' AND r.amico = 'S') order by M.msg_id desc  ") or die(mysql_error()); 
        
 while($row=mysql_fetch_array($query)) 
    
        $data[]=$row; 
        return $data; 
         
    } 
//Comments 
       public function Comments($msg_id)  
    { 
        $query = mysql_query("SELECT C.com_id, C.uid_fk, C.comment, C.created, U.username FROM comments C, users U WHERE C.uid_fk=U.uid and C.msg_id_fk='$msg_id' order by C.com_id asc ") or die(mysql_error()); 
      while($row=mysql_fetch_array($query)) 
        
        $data[]=$row; 
        if(!empty($data)) 
        { 
       return $data; 
         } 
    } 
     
    //Avatar Image 
    public function Gravatar($uid)  
    { 
        $query = mysql_query("SELECT email FROM `users` WHERE uid='$uid'") or die(mysql_error()); 
       $row=mysql_fetch_array($query); 
       if(!empty($row)) 
       { 
        $email=$row['email']; 
        $lowercase = strtolower($email); 
        $imagecode = md5( $lowercase ); 
        $data="http://www.gravatar.com/avatar.php?gravatar_id=$imagecode"; 
        return $data; 
         } 
         else 
         { 
         $data="default.jpg"; 
        return $data; 
         } 
    } 
     
    //Insert Update 
    public function Insert_Update($uid, $update)  
    { 
    $update=htmlentities($update); 
       $time=time(); 
       $ip=$_SERVER['REMOTE_ADDR']; 
        $query = mysql_query("SELECT msg_id,message FROM `messages` WHERE uid_fk='$uid' order by msg_id desc limit 1") or die(mysql_error()); 
        $result = mysql_fetch_array($query); 
         
        if ($update!=$result['message']) { 
            $query = mysql_query("INSERT INTO `messages` (message, uid_fk, ip,created) VALUES ('$update', '$uid', '$ip','$time')") or die(mysql_error()); 
            $newquery = mysql_query("SELECT M.msg_id, M.uid_fk, M.message, M.created, U.username FROM messages M, users U where M.uid_fk=U.uid and M.uid_fk='$uid' order by M.msg_id desc limit 1 "); 
            $result = mysql_fetch_array($newquery); 
             return $result; 
        }  
        else 
        { 
                 return false; 
        } 
         
        
    } 
     
    //Delete update 
        public function Delete_Update($uid, $msg_id)  
    { 
        $query = mysql_query("DELETE FROM `comments` WHERE msg_id_fk = '$msg_id' ") or die(mysql_error()); 
        $query = mysql_query("DELETE FROM `messages` WHERE msg_id = '$msg_id' and uid_fk='$uid'") or die(mysql_error()); 
        return true; 
                  
    } 
     
    //Insert Comments 
    public function Insert_Comment($uid,$msg_id,$comment)  
    { 
    $comment=htmlentities($comment); 
               $time=time(); 
       $ip=$_SERVER['REMOTE_ADDR']; 
        $query = mysql_query("SELECT com_id,comment FROM `comments` WHERE uid_fk='$uid' and msg_id_fk='$msg_id' order by com_id desc limit 1 ") or die(mysql_error()); 
        $result = mysql_fetch_array($query); 
     
        if ($comment!=$result['comment']) { 
            $query = mysql_query("INSERT INTO `comments` (comment, uid_fk,msg_id_fk,ip,created) VALUES ('$comment', '$uid','$msg_id', '$ip','$time')") or die(mysql_error()); 
            $newquery = mysql_query("SELECT C.com_id, C.uid_fk, C.comment, C.msg_id_fk, C.created, U.username FROM comments C, users U where C.uid_fk=U.uid and C.uid_fk='$uid' and C.msg_id_fk='$msg_id' order by C.com_id desc limit 1 "); 
            $result = mysql_fetch_array($newquery); 
          
           return $result; 
        }  
        else 
        { 
        return false; 
        } 
        
    } 
     
    //Delete Comments 
        public function Delete_Comment($uid, $com_id)  
    { 
        $query = mysql_query("DELETE FROM `comments` WHERE uid_fk='$uid' and com_id='$com_id'") or die(mysql_error()); 
        return true; 
                  
    } 

     

} 

?>


Come potete vedere la prima select serve a far vedere i mex degli amici...

il problema è questo:

se tolgo U.username e M.uid_fk=U.uid , tutto bene mi restituisce solo il mex di chi è mio amico, se lascio U.username e M.uid_fk=U.uid per ricavare l'username di chi ha scritto il post mi posta lo stesso mex per tutti i registrati chi mi sa dire come posso fare ?? grazie mille

Posto qui sotto solo la stringa incriminata ...

PHP:
$query = mysql_query("SELECT M.msg_id, M.uid_fk, M.message, M.created, U.username FROM messages M, users U  WHERE M.uid_fk=U.uid and  M.uid_fk='$uid' OR M.uid_fk IN (SELECT user_1 FROM relationship AS r WHERE r.user_2 = '$uid' AND r.amico = 'S') OR M.uid_fk IN (SELECT user_2 FROM relationship AS r WHERE r.user_1 = '$uid' AND r.amico = 'S') order by M.msg_id desc  ") or die(mysql_error());
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
per prima cosa metti i var_dump alle variabili che usi nella query
poi dividi la query e metti un altro var_dump rer vedere cosa ti restituisce (cioè se quello che vuoi tu?
PHP:
<?php
//....
var_dump($uid);
var_dump($msg_id);
$query_str="SELECT C.com_id, C.uid_fk, C.comment, C.msg_id_fk, C.created, U.username FROM comments C, users U where C.uid_fk=U.uid and C.uid_fk='$uid' and C.msg_id_fk='$msg_id' order by C.com_id desc limit 1 ";
var_dump($query_str);
$newquery($query_str);
var_dump($newquery);
//...
?>

p.s.
poi controllati la logica della query
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
Non capisco,
se tolgo l'interrogazione alla tabella Users tutto funziona se la inserisco mi restituisce tutti gli users che sono registrati .....

Hai idee ?? ti giuro non so più come fare
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
scusa, ma non sono esperto dell'uso delle classi, quindi può darsi che dica delle fregnacce.
comunque dovresti avere una pagina in cui includi il file con la classe (o la classe è scritta nella stessa pagina), poi immagino che tu istanzi la classe con un'istruzione del tipo:

PHP:
$amici = new Wall_Updates();//al posto di $amici quello che dovresti aver messo tu
giusto?
se è cosi devi passare l'id dellutente alla funzione
PHP:
$amici->Updates($id_utente);//ma devi avere comunque $id_utente inizializzato (es da una sessione)
prova così e verifica di nuovo i var_dump

se hai già fatto tutto questo, non so cosa dirti

p.s.
se ho detto una fregnaccia spera in alex
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
Grazie mille Borgo.
sei sempre gentilissimo, cmq come ben sai anche io ho qualche problema e non solo con le classi sto adattando uno script e direi che ci sono riuscito egregiamente a parte il problema della foto che poi posto.

Speriamo che alex o qualcuno che se ne intenda possa risolvere l'arcano :)
 
Discussioni simili
Autore Titolo Forum Risposte Data
V [PHP] Perché non funziona ? PHP 1
M Perché Javascript non mi valida questo form? Javascript 0
J Ciao ho bisogno di capire, perché questo form non funziona più sul sito ASP.NET 0
S Non mi funziona la connessione/query mysqli. Ma perché? PHP 1
P Secondo voi Joomla! è meglio di Drupal? Perché? Joomla 9
F Perché usate ASP.net? ASP.NET 21
P Perché devo riavviare il pc per connettermi a internet? Adsl e Connettività 1
A Perché secondo voi questo streaming si blocca? PHP 2
K Perché "session_start" mi cambia l'impaginazione su explorer? PHP 14
alessandro1997 Perché programmare a oggetti PHP 22
L perché questo programma non funziona? Programmazione 0
G Con Dreamweaver, perché cerca non trova la selezione? Webdesign e Grafica 4
GENZIANA Perché non vedo le mie pagine in locale? PHP 4
L perché cambiano le icone????? Discussioni Varie 8
R Navigare sito con cURL, mi restituisce errore PHP 0
G MariaDB non restituisce dei valori PHP 7
X [Apache] Restituisce pagina bianca e vuota Apache 0
N [java con eclipse]metodo ricorsivo che accetta in ingresso un char e restituisce un int Java 0
G Chiamata ajax restituisce errore random Ajax 1
daniele8808 [MySQL] SQL SELECT restituisce più valori del dovuto MySQL 2
S [PHP] Perchè con require(tcpdf...) restituisce ora errata? PHP 0
T [PHP] Metodo che restituisce un array PHP 5
A Query restituisce sempre 0 valori MySQL 17
S Il campo restituisce ???? e nn la parola in russo MySQL 5
K SQL con between non restituisce i dati corretti MS Access 7
L Funzione non restituisce completamente un array PHP 2
J Bottone submit mi restituisce errore 404 page not found PHP 7
D Se non trova un elemento in array restituisce il testo dell'elemento PHP 2
C PHP restituisce il risultato di una query errato PHP 8
E Non restituisce la prima riga del DB PHP 21
M Php e mysql: tabella con URL che restituisce ID PHP 2
L Count(array) mi restituisce sempre 1 PHP 8
A Script che restituisce il file con data di modifica più recente di una directory PHP 15
X Php e funzione che restituisce byte PHP 2
M Request.form non restituisce valori Classic ASP 5
S Ciao a tutti Presentati al Forum 0
K Ciao a tutti Presentati al Forum 0
M Salve a tutti Presentati al Forum 0
M Salve a tutti Presentati al Forum 0
O Salve a tutti! Presentati al Forum 0
D Ciao a tutti mi presento Presentati al Forum 0
L Ciao a tutti Presentati al Forum 0
Q Ciao a tutti Presentati al Forum 0
A Ciao a tutti Presentati al Forum 1
Stex1967 Un caro saluto a tutti i membri Presentati al Forum 1
A Buongiorno a tutti Presentati al Forum 0
G ciao a tutti Presentati al Forum 2
N ciao a tutti Presentati al Forum 0
C Ciao a tutti Presentati al Forum 1
L Ciao a tutti Presentati al Forum 0

Discussioni simili