Estrazione Username

Stato
Chiusa ad ulteriori risposte.
Nooooooooo :(

Chiedo venia pensavo che avevi staccato e ho chiuso tutto ....

Domani provo e ti so dire ....

Ti dovrebbero dare un premio su questo forum x la tua gentilezza ...

Grazie di cuore a domani
 
ciao,
da quando i vardump mi davano quella pappardella ho fatto svariate prove ma non funzionando ho rimesso tutto com'era nei primi tuoi post ...

ora ho aggiunto la tua ultima query e il risultato e NULL

PHP:
class Wall_Updates {  


      
     // Updates         
      public function Updates($uid)   
    {  
      
    $q=mysql_query("SELECT user_1, user_2 FROM relationship WHERE (user_1=$uid OR user_2=$uid) AND amico='S'");   
while($am=mysql_fetch_assoc($q)){   
    $amici_grezzi[]=$am['user_1'];   
    $amici_grezzi[]=$am['user_2'];   
}   
//ripulisci l'array dei valori duplicati   

foreach($amici AS $valore){ 
    $q=mysql_query("SELECT M.msg_id, M.uid_fk, M.message, M.created, U.username FROM messages AS M, users AS U WHERE M.uid_fk=$valore"); 
    $row=mysql_fetch_array($q); 
    $data[0]=$row['msg_id'];//da php 5 il primo elemento di push deve essere un array 
    array_push($data,$row['uid_fk'],$row['uid_fk'],$row['message'],$row['created'],$row['username']); 
} 
var_dump($data); 
//return $data; 
    
       return $data; 
    
 }


Cmq lo dico davvero ti dovrebbero fare un monumento, sto imparando più cose da te che da chiunque altro ....

grazie sei davvero un mostro di php
 
c'è da dire che almeno statisticamente i miei post non sono del tutto cretini ...

fortunatamente riscuotono molto visite e tengono vivo questo fantastico forum ....... :)
 
ciao
può darsi che lo script che ti ho postato per ultimo non funzi, ma se hai usato come script il tuo ultimo postato è più che logico che ti dia nada de nada.
un pelo di attenzione.
vediamo si ti accorgi cosa ti sei dimenticato di scrivere
 
CAvolo,
hai proprio ragione, ieri sera sono tornato tardissimo da lavoro e nella fretta ho dimenticato

PHP:
$amici=array_unique($amici_grezzi);

Questo intendevi vero ???
 
Ultima modifica di un moderatore:
ciao
piccolo errore, ho ripetuto due volte la stessa $row
array_push($data,$row['uid_fk'],$row['uid_fk'],$row['message'],$row['created'],$row['username']);
toglilo
 
nada


ti posto l'immagine questa volta

ishot-214.png

lo script

PHP:
class Wall_Updates {  


      
     // Updates         
      public function Updates($uid)   
    {  
      
    $q=mysql_query("SELECT user_1, user_2 FROM relationship WHERE (user_1=$uid OR user_2=$uid) AND amico='S'");   
while($am=mysql_fetch_assoc($q)){   
    $amici_grezzi[]=$am['user_1'];   
    $amici_grezzi[]=$am['user_2'];   
}   
//ripulisci l'array dei valori duplicati   
$amici=array_unique($amici_grezzi);  
foreach($amici AS $valore){ 
    $q=mysql_query("SELECT M.msg_id, M.uid_fk, M.message, M.created, U.username FROM messages AS M, users AS U WHERE M.uid_fk=$valore"); 
    $row=mysql_fetch_array($q); 
    $data[0]=$row['msg_id'];//da php 5 il primo elemento di push deve essere un array 
    array_push($data,$row['uid_fk'],$row['message'],$row['created'],$row['username']); 
} 

//return $data; 
    
       return $data; 
    
}
 
ciao anche su questo script mi da' gli stessi problemi ......

PHP:
class Wall_Updates {

public $perpage = 10; // Uploads perpage
    

	
     // Updates   	
	  public function Updates($uid,$lastid) 
	{
	  // More Button
       $morequery="";
		if($lastid)
		$morequery=" and M.msg_id<'".$lastid."' ";
	   // More Button End
	   
	    $query = mysql_query("SELECT M.msg_id, M.uid_fk, M.message, M.created, U.username,M.uploads FROM messages M, users U, relationship AS r  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')  $morequery order by M.msg_id desc limit " .$this->perpage) or die(mysql_error());
		
         while($row=mysql_fetch_array($query))
		$data[]=$row;
	    return $data;
		
    }
 
Lo script completo

PHP:
<?php


class Wall_Updates {

public $perpage = 10; // Uploads perpage
    

	
     // Updates   	
	  public function Updates($uid,$lastid) 
	{
	  // More Button
       $morequery="";
		if($lastid)
		$morequery=" and M.msg_id<'".$lastid."' ";
	   // More Button End
	   
	    $query = mysql_query("SELECT M.msg_id, M.uid_fk, M.message, M.created, U.username,M.uploads FROM messages M, users U, relationship AS r  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')  $morequery order by M.msg_id desc limit " .$this->perpage) or die(mysql_error());
		
         while($row=mysql_fetch_array($query))
		$data[]=$row;
	    return $data;
		
    }
	     // Updates   	
	  public function Total_Updates($uid) 
	{
	 	   
	    $query = mysql_query("SELECT M.msg_id, M.uid_fk, M.message, M.created, U.username,M.uploads FROM messages M, users U  WHERE M.uid_fk=U.uid and M.uid_fk='$uid' $morequery order by M.msg_id ") or die(mysql_error());
		$data=mysql_num_rows($query);
        return $data;
		
    }
	
	//Comments
	   public function Comments($msg_id,$second_count) 
	{
	$query='';
	  if($second_count)
	  $query="limit $second_count,2";
	    $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 $query") or die(mysql_error());
	   while($row=mysql_fetch_array($query))
	    $data[]=$row;
        if(!empty($data))
		{
       return $data;
         }
	}
	
	
	//Avatar Image
	//From database
     public function Profile_Pic($uid) 
	{
	    $query = mysql_query("SELECT profile_pic FROM `users` WHERE uid='$uid'") or die(mysql_error());
	   $row=mysql_fetch_array($query);
	   if(!empty($row['profile_pic']))
	   {
	    $profile_pic_path=$base_url.'profile_pic/';
	    $data=    $profile_pic_path.$row['profile_pic'];
        return $data;
         }
		 else
		 {
		 $data="icons/default.jpg";
		return $data;
		 }
	}
	//  Gravatar 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,$uploads) 
	{
	$update=mysql_real_escape_string($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']) {
		  $uploads_array=explode(',',$uploads);
		  $uploads=implode(',',array_unique($uploads_array));
            $query = mysql_query("INSERT INTO `messages` (message, uid_fk, ip,created,uploads) VALUES (N'$update', '$uid', '$ip','$time','$uploads')") 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' and uid_fk='$uid' ") 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;
      	       
    }
	
		//Image Upload
		public function Image_Upload($uid, $image) 
	{
	//Base64 encoding
	$path="uploads/";
	 	  $img_src = $path.$image;
     $imgbinary = fread(fopen($img_src, "r"), filesize($img_src));
     $img_base = base64_encode($imgbinary);
	 $ids = 0;
        $query = mysql_query("insert into user_uploads (image_path,uid_fk)values('$image' ,'$uid')") or die(mysql_error());
		$ids = mysql_insert_id();
        return $ids;
    }
	
			//get Image Upload
		public function Get_Upload_Image($uid,$image) 
	{	
	    if($image)
		{
		  $query = mysql_query("select id,image_path from user_uploads where image_path='$image'") or die(mysql_error());
		}
		else
		{
		   $query = mysql_query("select id,image_path from user_uploads where uid_fk='$uid' order by id desc ") or die(mysql_error());
		}
      
         $result = mysql_fetch_array($query);
		
		return $result;
    }
	
		//Id Image Upload
		public function Get_Upload_Image_Id($id) 
	{	
        $query = mysql_query("select image_path from user_uploads where id='$id'") or die(mysql_error());
         $result = mysql_fetch_array($query);
		
		return $result;
    }
	
	//Insert Comments
	public function Insert_Comment($uid,$msg_id,$comment) 
	{
	$comment=mysql_real_escape_string($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 (N'$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;
      	       
    }

    

}

?>
 
la classe originale ....


PHP:
class Wall_Updates {

public $perpage = 10; // Uploads perpage
    

	
     // Updates   	
	  public function Updates($uid,$lastid) 
	{
	  // More Button
       $morequery="";
		if($lastid)
		$morequery=" and M.msg_id<'".$lastid."' ";
	   // More Button End
	   
	    $query = mysql_query("SELECT M.msg_id, M.uid_fk, M.message, M.created, U.username,M.uploads FROM messages M, users U  WHERE M.uid_fk=U.uid and M.uid_fk='$uid' $morequery order by M.msg_id desc limit " .$this->perpage) or die(mysql_error());
		
         while($row=mysql_fetch_array($query))
		$data[]=$row;
	    return $data;
		
    }
	     // Updates
 
ciao
penso di aver fatto un piccolo errore di logica nello script che ti ho inviato.
tra oggi e domani faccio una prova poi ti so dire
 
OK

Ti ho cmq postato una nuova function simile alla prima ma più performante e secondo me anche più semplice della prima ...

se puoi lavora su questa nuova ....

Grazie mille
 
ciao
intanto ho provato il vecchio script (l'errore era $data[0]), fatta così ti restituisce al var_dump l'array che (come mi sembra) è quello che vuoi, cioè i id messaggio, id utente, messaggo, data creazione, username
PHP:
<?php
//...
 $q=mysql_query("SELECT user_1, user_2 FROM relationship WHERE (user_1=$uid OR user_2=$uid) AND amico='S'");    
while($am=mysql_fetch_assoc($q)){    
    $amici_grezzi[]=$am['user_1'];    
    $amici_grezzi[]=$am['user_2'];    
}    
//ripulisci l'array dei valori duplicati    
$amici=array_unique($amici_grezzi);   
foreach($amici AS $valore){  
    $q=mysql_query("SELECT M.msg_id, M.uid_fk, M.message, M.created, U.username FROM messages AS M, users AS U WHERE M.uid_fk=$valore");  
    $row=mysql_fetch_array($q);//qui se vuoi puoi sostituire con mysql_fetch_assoc
    $data[]=$row['msg_id'];//errore AVEVO MESSO $data[0] 
    array_push($data,$row['uid_fk'],$row['message'],$row['created'],$row['username']);  
}  
var_dump($data);
//.....
?>
non sto a scriverti tutto ma il var_dump restituisce
[0]=> string(1) "1" [1]=> string(2) "10" [2]=> string(8) "mess uno" [3]=> string(10) "1320871234" [4]=> string(5) "pinco"
[5]=> string(1) "2" [6]=> string(2) "10" [7]=> string(8) "mess due" [8]=> string(10) "1320871294" [9]=> string(5) "pinco"
ecc...
ora se non visualizzi i messaggi ecc.., forse, dipende da come poi elabori l'arry $data, es per visualizzare i vari messaggi con gli altri dati, attribuendo ad ogni messaggio i propri valori defi fare un ciclo apposito, es.

PHP:
<?php
$numero=count($data);
for($k=0;$k < $numero; $h+=5){//cioè increnmentare di 5 in 5 dato che i valori congrui sono 5
	echo "id messaggio ".$data[$k]."<br>";//per $k==0 -> $data[0] ; per $k==5 -> $data[5]
	echo "id utente ".$data[$k+1]."<br>";//per $k==0 -> $data[1] ; per $k==5 -> $data[6]
	echo "messaggio ".$data[$k+2]."<br>";//per $k==0 -> $data[2] ; per $k==5 -> $data[7]
	echo "creato il ".$data[$k+3]."<br>";//per $k==0 -> $data[3] ; per $k==5 -> $data[8]
	echo "username ".$data[$k+4]."<br><br>";//per $k==0 -> $data[4] ; per $k==5 -> $data[9] ecc....
}
?>
p.s.
poi do un occhio al nuovo, anche se funzia è più performante, ma se non funzia non è performante
 
niente da fare ....

ripete sempre tutto e senza username ....

PHP:
class Wall_Updates {  


      
     // Updates         
      public function Updates($uid)   
    {  
      
 $q=mysql_query("SELECT user_1, user_2 FROM relationship WHERE (user_1=$uid OR user_2=$uid) AND amico='S'");     
while($am=mysql_fetch_assoc($q)){     
    $amici_grezzi[]=$am['user_1'];     
    $amici_grezzi[]=$am['user_2'];     
}     
//ripulisci l'array dei valori duplicati     
$amici=array_unique($amici_grezzi);    
foreach($amici AS $valore){   
    $q=mysql_query("SELECT M.msg_id, M.uid_fk, M.message, M.created, U.username FROM messages AS M, users AS U WHERE M.uid_fk=$valore");   
    $row=mysql_fetch_array($q);//qui se vuoi puoi sostituire con mysql_fetch_assoc 
    $data[]=$row['msg_id'];//errore AVEVO MESSO $data[0]  
    array_push($data,$row['uid_fk'],$row['message'],$row['created'],$row['username']);   
}   
var_dump($data); 

//return $data; 
    
       return $data; 
    
}


Io penso che l array $data lo elaboriri in questa funzione non trovo altro !!?

PHP:
$Wall = new Wall_Updates();
if(isSet($_POST['update']))
{
$update=$_POST['update'];
$data=$Wall->Insert_Update($uid,$update);

if($data)
{
$msg_id=$data['msg_id'];
$message=tolink(htmlentities($data['message']));
$time=$data['created'];
$uid=$data['uid_fk'];
$username=$data['username'];
$face=$Wall->Gravatar($uid);

Puo' essere ???
 
Ciao Borgo,

prova e riprova chiedi amicizia non chiedi amicizia, ho scoperto che il problema sta tutto quando si aggiunge
PHP:
 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')


Secondo me si dovrebbe solo trovare un modo per far si che la tabella relationship stia dentro qui : ( ti ho messo lo stesso mex vicino alle due query da modificare )

// qui e sotto, l'altra volta c'era riuscito Alex, non so se ti ricordi ma la tabella relationship era riuscito lui a risolverla .. cmq secondo me dobbiamo se puoi aiutarmi se posso aiutarmi chi ne ha le capacità ad inserirlo direttamente qui .... perché infatti se uno non ha amici i post anche con la tabella modificata relationship funzionano correttamente e non si duplicano, si duplica tutto quando inserisco relatiosnhip quindi si vede che la query non è corretta per questo script

PHP:
class Wall_Updates {

public $perpage = 10; // Uploads perpage
    

	
     // Updates   	
	  public function Updates($uid,$lastid) 
	{
	  // More Button
       $morequery="";
		if($lastid)
		$morequery=" and M.msg_id<'".$lastid."' ";
	   // More Button End
	                                                                          //  qui e sotto, l'altra volta c'era riuscito Alex, non so se ti ricordi ma la tabella relationship era riuscito lui a risolverla .. cmq secondo me dobbiamo se puoi aiutarmi se posso aiutarmi chi ne ha le capacità ad inserirlo direttamente qui ....  perché infatti se uno non ha amici i post anche con la tabella modificata relationship funzionano correttamente e non si duplicano, si duplica tutto quando inserisco relatiosnhip quindi si vede che la query non è corretta per questo script
	    $query = mysql_query("SELECT M.msg_id, M.uid_fk, M.message, M.created, U.username,M.uploads FROM messages M, users U  WHERE M.uid_fk=U.uid and M.uid_fk='$uid' $morequery order by M.msg_id desc limit " .$this->perpage) or die(mysql_error());
		
         while($row=mysql_fetch_array($query))
		$data[]=$row;
	    return $data;
		
    }
	     // Updates   	
	  public function Total_Updates($uid) 
	{
	                                                                                       //  qui e sotto, l'altra volta c'era riuscito Alex, non so se ti ricordi ma la tabella relationship era riuscito lui a risolverla .. cmq secondo me dobbiamo se puoi aiutarmi se posso aiutarmi chi ne ha le capacità ad inserirlo direttamente qui ....  perché infatti se uno non ha amici i post anche con la tabella modificata relationship funzionano correttamente e non si duplicano, si duplica tutto quando inserisco relatiosnhip quindi si vede che la query non è corretta per questo script
	    $query = mysql_query("SELECT M.msg_id, M.uid_fk, M.message, M.created, U.username,M.uploads FROM messages M, users U  WHERE M.uid_fk=U.uid and M.uid_fk='$uid' $morequery order by M.msg_id ") or die(mysql_error());
		$data=mysql_num_rows($query);
        return $data;
		
    }
 
SE provo a farla cosi, ma sicuramente sbaglio la logica ....

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

Mi da il seguente errore

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'r.user_1 = '61' AND r.amico = 'S' order by M.msg_id desc limit 10' at line 1
 
Stato
Chiusa ad ulteriori risposte.

Discussioni simili