allora cerco di essere più chiaro possibile ....

ho tre tabelle messages, comments, users ma quelle che mi servono sono users e messages .

Lo script originale era questo:

Codice PHP:
class Wall_Updates 


     
     
// 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' order by M.msg_id desc ") or die(mysql_error()); 
         while(
$row=mysql_fetch_array($query)) 
        
$data[]=$row
        return 
$data
         
    } 

Come puoi vedere c'è U.username e users U.

Modificandolo come serve a me così :

Codice PHP:
class Wall_Updates 


     
     
// Updates        
      
public function Updates($uid)  
    { 
     
     
         
$query mysql_query("SELECT M.msg_id, M.uid_fk, M.message, M.created FROM messages M WHERE   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
         
    } 
NOn posso aggiungere la tabella users perché se no al posto di vedere solo i post degli amici come funziona correttamente in questa query, mi fa' vedere il post ripetuto per tutti gli utenti registrati.

La mia necessità è quella di aggiungere a quest'ultima query la tabella users per recuperare dei dati che mi servono da stampare e ho pensato di fare una join, ma magari potrebbe bastare una qualsiasi query ecc.

E ho provato così nel pomeriggio:

Codice PHP:
// Updates         
      
public function Updates($uid)   
    {  
      
      
         
$query mysql_query"SELECT M.msg_id, M.uid_fk, M.message, M.created, username FROM  
       messages  
        INNER JOIN messages M  ON (M.uid_fk='
$uid' ) 
        INNER JOIN users U ON (M.uid_fk=U.uid )  
       
          
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;  
          
  } 

Pero' nn funziona bene perché mi rida' tutti i post

ti posto i campi delle tabelle

Codice PHP:
CREATE TABLE IF NOT EXISTS `users` ( 
  `
uidbigint(20NOT NULL AUTO_INCREMENT
  `
md5_idvarchar(200COLLATE latin1_general_ci NOT NULL DEFAULT ''
  `
full_nametinytext COLLATE latin1_general_ci NOT NULL
  `
usernamevarchar(200COLLATE latin1_general_ci NOT NULL DEFAULT ''
  `
user_emailvarchar(220COLLATE latin1_general_ci NOT NULL DEFAULT ''
  `
emailvarchar(100COLLATE latin1_general_ci NOT NULL
  `
user_leveltinyint(4NOT NULL DEFAULT '1'
  `
pwdvarchar(220COLLATE latin1_general_ci NOT NULL DEFAULT ''
  `
addresstext COLLATE latin1_general_ci NOT NULL
  `
countryvarchar(200COLLATE latin1_general_ci NOT NULL DEFAULT ''
  `
telvarchar(200COLLATE latin1_general_ci NOT NULL DEFAULT ''
  `
faxvarchar(200COLLATE latin1_general_ci NOT NULL DEFAULT ''
  `
websitetext COLLATE latin1_general_ci NOT NULL
  `
datedate NOT NULL DEFAULT '0000-00-00'
  `
users_ipvarchar(200COLLATE latin1_general_ci NOT NULL DEFAULT ''
  `
approvedint(1NOT NULL DEFAULT '0'
  `
activation_codeint(10NOT NULL DEFAULT '0'
  `
bannedint(1NOT NULL DEFAULT '0'
  `
ckeyvarchar(220COLLATE latin1_general_ci NOT NULL DEFAULT ''
  `
ctimevarchar(220COLLATE latin1_general_ci NOT NULL DEFAULT ''
  `
nome_file_verovarchar(255COLLATE latin1_general_ci NOT NULL
  `
tipo_filevarchar(255COLLATE latin1_general_ci NOT NULL
  `
dati_filelongblob NOT NULL
  
PRIMARY KEY (`uid`), 
  
UNIQUE KEY `user_email` (`user_email`), 
  
FULLTEXT KEY `idx_search` (`full_name`,`address`,`user_email`,`username`) 
ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=66 
i campi della tabella messages
Codice PHP:

Codice PHP:
CREATE TABLE IF NOT EXISTS `messages` ( 
  `
msg_idint(11NOT NULL AUTO_INCREMENT
  `
messagevarchar(200) DEFAULT NULL
  `
uid_fkint(11) DEFAULT NULL
  `
ipvarchar(30) DEFAULT NULL
  `
createdint(11) DEFAULT '1269249260'
  
PRIMARY KEY (`msg_id`), 
  
KEY `uid_fk` (`uid_fk`) 
ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=274