Estrazione Username

Stato
Chiusa ad ulteriori risposte.

searedone

Utente Attivo
11 Giu 2010
508
0
0
Ciao,
ho un problema di estrazione dell'username che a mio giudizio è un po' anomalo.

vi posto la query :

questa era l'originale

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; 
         
    }

L'ho modificata cosi perchè mi serve che i post li possano vedere solo gli amici di tipo fb o twitter, funziona mi printa l'username tutto se non che mi ripete lo stesso post per tutti gli users registrati e non solo per chi ha scritto

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 AS M, users AS U WHERE M.uid_fk = U.uid AND M.uid_fk='$uid' 
OR (M.uid_fk IN (SELECT r.user_1 FROM relationship AS r WHERE r.user_2 = '$uid' AND r.amico = 'S')  
OR M.uid_fk IN (SELECT s.user_2 FROM relationship AS s WHERE s.user_1 = '$uid' AND s.amico = 'S'))  ORDER BY M.msg_id desc ") or die(mysql_error());      
         while($row=mysql_fetch_array($query)) 
        $data[]=$row; 
        return $data; 
         
    }

Se tolgo U.username , users AS U non mi printa più l'username di fianco alla foto nel post ma solo foto e mex ... :(

codice di post ed estrazione .. si inizia con

il codice nella index

PHP:
<?php 
error_reporting(0); 
include_once 'includes/db.php'; 
include_once 'includes/functions2.php'; 
include_once 'includes/tolink.php'; 
include_once 'includes/time_stamp.php'; 
include_once 'session.php'; 

$Wall = new Wall_Updates(); 
$updatesarray=$Wall->Updates($uid); 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Version 3.0</title> 
<link href="css/wall.css" rel="stylesheet" type="text/css"> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
 <script type="text/javascript" src="js/jquery.oembed.js"></script> 
 <script type="text/javascript" src="js/wall.js"></script> 
</head> 
<body> 
<div id="wall_container"> 
<div id="updateboxarea"> 
<h4>What's up?</h4> 
<form method="post" action=""> 
<textarea cols="30" rows="4" name="update" id="update" maxlength="200" ></textarea> 
<br /> 
<input type="submit"  value=" Update "  id="update_button"  class="update_button"/> 
</form> 
</div> 
<div id='flashmessage'> 
<div id="flash" align="left"  ></div> 
</div> 
<div id="content"> 

<?php include('load_messages.php'); ?>
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
messages_ayax.php

PHP:
 <?php 
 //Srinivas Tamada http://9lessons.info 
//Load latest update  
error_reporting(0); 
include_once 'includes/db.php'; 
include_once 'includes/functions2.php'; 
include_once 'includes/tolink.php'; 
include_once 'includes/time_stamp.php'; 
include_once 'session.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); 
//$commentsarray=$Wall->Comments($msg_id); 
?> 
<div class="stbody" id="stbody<?php echo $msg_id;?>"> 
<div class="stimg"> 
<img src="<?php echo $face;?>" class='big_face'/> 
</div>  
<div class="sttext"> 
<a class="stdelete" href="#" id="<?php echo $msg_id;?>" title='Delete update'>X</a> 
<b><?php echo $username;?></b> <?php echo $message;?> 
<div class="sttime"><?php time_stamp($time);?> | <a href='#' class='commentopen' id='<?php echo $msg_id;?>' title='Comment'>Comment </a></div>  
<div id="stexpandbox"> 
<div id="stexpand"></div> 
</div> 
<div class="commentcontainer" id="commentload<?php echo $msg_id;?>"> 
<?php// include('load_comments.php') ?> 
</div> 
<div class="commentupdate" style='display:none' id='commentbox<?php echo $msg_id;?>'> 
<div class="stcommentimg"> 
<img src="<?php echo $face;?>" class='small_face'/> 
</div>  
<div class="stcommenttext" > 
<form method="post" action=""> 
<textarea name="comment" class="comment" maxlength="200"  id="ctextarea<?php echo $msg_id;?>"></textarea> 
<br /> 
<input type="submit"  value=" Comment "  id="<?php echo $msg_id;?>" class="comment_button"/> 
</form> 
</div> 
</div> 
</div>  
</div> 
<?php 
} 
} 
?>

load messages.php

PHP:
<?php 
//Srinivas Tamada http://9lessons.info 
//Loading Comments link with load_updates.php  
foreach($updatesarray as $data) 
 { 
 $msg_id=$data['msg_id']; 
 $orimessage=$data['message']; 
 $message=tolink(htmlentities($data['message'])); 
  $time=$data['created']; 
   $username=$data['username']; 
 $uid=$data['uid_fk']; 
 $face=$Wall->Gravatar($uid); 
 $commentsarray=$Wall->Comments($msg_id); 
?> 

<script type="text/javascript">  
$(document).ready(function(){$("#stexpand<?php echo $msg_id;?>").oembed("<?php echo  $orimessage; ?>",{maxWidth: 400, maxHeight: 300});}); 
</script> 
<div class="stbody" id="stbody<?php echo $msg_id;?>"> 

<div class="stimg"> 
<img src="<?php echo $face;?>" class='big_face'/> 
</div>  
<div class="sttext"> 
<a class="stdelete" href="#" id="<?php echo $msg_id;?>" title="Delete update">X</a> 
<b><?php echo " <a href=\"profile.php?uid=$uid\"/>$username</a>";  ?></b> <?php echo $message;?> 
<div class="sttime"><?php time_stamp($time);?> | <a href='#' class='commentopen' id='<?php echo $msg_id;?>' title='Comment'>Comment </a></div>  

<div id="stexpandbox"> 
<div id="stexpand<?php echo $msg_id;?>"></div> 
</div> 

<div class="commentcontainer" id="commentload<?php echo $msg_id;?>"> 


<?php include('load_comments.php') ?> 





</div> 
<div class="commentupdate" style='display:none' id='commentbox<?php echo $msg_id;?>'> 
<div class="stcommentimg"> 
<img src="<?php echo $face;?>" class='small_face'/> 
</div>  
<div class="stcommenttext" > 
<form method="post" action=""> 

<textarea name="comment" class="comment" maxlength="200"  id="ctextarea<?php echo $msg_id;?>"></textarea> 
<br /> 
<input type="submit"  value=" Comment "  id="<?php echo $msg_id;?>" class="comment_button"/> 
</form> 


</div> 
</div> 


</div>  

</div> 


<?php 

  } 
?>
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
le 4 tabelle dei db

comments

PHP:
CREATE TABLE IF NOT EXISTS `comments` ( 
  `com_id` int(11) NOT NULL AUTO_INCREMENT, 
  `comment` varchar(200) DEFAULT NULL, 
  `msg_id_fk` int(11) DEFAULT NULL, 
  `uid_fk` int(11) DEFAULT NULL, 
  `ip` varchar(30) DEFAULT NULL, 
  `created` int(11) DEFAULT '1269249260', 
  PRIMARY KEY (`com_id`), 
  KEY `msg_id_fk` (`msg_id_fk`), 
  KEY `uid_fk` (`uid_fk`) 
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=33 ;

messages

PHP:
CREATE TABLE IF NOT EXISTS `messages` ( 
  `msg_id` int(11) NOT NULL AUTO_INCREMENT, 
  `message` varchar(200) DEFAULT NULL, 
  `uid_fk` int(11) DEFAULT NULL, 
  `ip` varchar(30) DEFAULT NULL, 
  `created` int(11) DEFAULT '1269249260', 
  PRIMARY KEY (`msg_id`), 
  KEY `uid_fk` (`uid_fk`) 
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=62 ;
users

PHP:
CREATE TABLE IF NOT EXISTS `users` ( 
  `uid` bigint(20) NOT NULL AUTO_INCREMENT, 
  `md5_id` varchar(200) COLLATE latin1_general_ci NOT NULL DEFAULT '', 
  `full_name` tinytext COLLATE latin1_general_ci NOT NULL, 
  `username` varchar(255) COLLATE latin1_general_ci DEFAULT NULL, 
  `user_email` varchar(220) COLLATE latin1_general_ci NOT NULL DEFAULT '', 
  `email` varchar(100) COLLATE latin1_general_ci NOT NULL, 
  `user_level` tinyint(4) NOT NULL DEFAULT '1', 
  `pwd` varchar(220) COLLATE latin1_general_ci NOT NULL DEFAULT '', 
  `address` text COLLATE latin1_general_ci NOT NULL, 
  `country` varchar(200) COLLATE latin1_general_ci NOT NULL DEFAULT '', 
  `tel` varchar(200) COLLATE latin1_general_ci NOT NULL DEFAULT '', 
  `fax` varchar(200) COLLATE latin1_general_ci NOT NULL DEFAULT '', 
  `website` text COLLATE latin1_general_ci NOT NULL, 
  `date` date NOT NULL DEFAULT '0000-00-00', 
  `users_ip` varchar(200) COLLATE latin1_general_ci NOT NULL DEFAULT '', 
  `approved` int(1) NOT NULL DEFAULT '0', 
  `activation_code` int(10) NOT NULL DEFAULT '0', 
  `banned` int(1) NOT NULL DEFAULT '0', 
  `ckey` varchar(220) COLLATE latin1_general_ci NOT NULL DEFAULT '', 
  `ctime` varchar(220) COLLATE latin1_general_ci NOT NULL DEFAULT '', 
  `nome_file_vero` varchar(255) COLLATE latin1_general_ci NOT NULL, 
  `tipo_file` varchar(255) COLLATE latin1_general_ci NOT NULL, 
  `dati_file` longblob NOT NULL, 
  `uid_fk` int(11) NOT NULL, 
  PRIMARY KEY (`uid`), 
  UNIQUE KEY `user_email` (`user_email`), 
  UNIQUE KEY `username` (`username`), 
  FULLTEXT KEY `idx_search` (`full_name`,`address`,`user_email`,`username`) 
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=66 ;

Relationship

PHP:
CREATE TABLE IF NOT EXISTS `relationship` ( 
`id` int(10) NOT NULL auto_increment, 
`user_1` varchar(10) NOT NULL, 
`user_2` varchar(10) NOT NULL, 
`amico` enum('S','N') NOT NULL default 'N', 
PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=76 ;
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
la classe completa

PHP:
<?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; 
         
    } 
     
     
     
    //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 nome_file_vero FROM `users` WHERE uid='$uid'") or die(mysql_error()); 
       $row=mysql_fetch_array($query); 
       if(!empty($row)) 
       { 
        $email=$row['email']; 
        $nome_file_vero=$row['nome_file_vero']; 
        $lowercase = strtolower(nome_file_vero); 
        $nome_file_vero = 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; 
                  
    } 

     

} 

?>

e con questo spero di aver messo tutto quello che puo' servire a risolvere l'enigma
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
scusa ma riguardando le tabelle ho notato una cosa e non vorrei che fosse quella
nella tabella user metti
`uid` bigint(20) NOT NULL AUTO_INCREMENT,
cioè uid in intero
poi nella relationship
`user_1` varchar(10) NOT NULL,
`user_2` varchar(10) NOT NULL,

ora nella tabella relationship dovrebbero esserci,se non ricordo male, i vari uid degli utenti (amici o no), non sarebbe meglio visto che poi ti serve nel confronto
mettere
`user_1` bigint(20) NOT NULL,
`user_2` bigint(20) NOT NULL,
non vorrei che stessimo girando attorno ad un problema che nasce molto a monte
dico questo anche perchè mi hanno stupito quei valori NULL nello scrip che ti avevo postato (che comunque riguardo perche come logica, anche se non come script, dovrebbe andare bene)
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
guarda che ho ripreso in mano il lo script che ti avevo postato.
mi sono fatto la seguente tabella "relationship"
Codice:
id	user_1  user_2  amici  
1	22       33        S 
2	22       44        S 
3	55       22        S 
4	22       99        N
con una piccola correzione sulla prima selct: ho racchiuso l'OR tra parentesi
ho commentato la seconda parte perche non ho fatto le altre tabella (troppo lavoro)
lo script è il seguente
PHP:
<?php
//......
$conn = @mysql_connect($host,$username,$password) or die (mysql_error());
$sel = @mysql_select_db($db) or die (mysql_error());
$uid=22;//preso un valore dalla tabella
//1) dalla tabella relationship estrai tutti gli user amici
$q=mysql_query("SELECT user_1, user_2 FROM relationship WHERE (user_1=$uid OR user_2=$uid) AND amici='S'");
while($am=mysql_fetch_array($q)){
    $amici_grezzi[]=$am['user_1'];
    $amici_grezzi[]=$am['user_2'];
}
//ripulisci l'array dei valori duplicati
var_dump($amici_grezzi);echo "<br>";
$amici=array_unique($amici_grezzi);
var_dump($amici);echo "<br>";
/*
//quindi nell'array amici trovi tutti gli idi degli amici di $uid + $uid
//se vuoi puoi ordinare l'array con sort($amici);
//2) a questo punto fai una join tra messaggi e user ciclando l'array $amici
foreach($amici AS $valore){
//estraggo tutti i messaggi di $uid e dei suoi amici
    $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[]=$row;
}
return $data;
//...
*/
?>
e questo, come deve essere è l'output dei var_dump
Codice:
array(6) { [0]=> string(2) "22" [1]=> string(2) "33" [2]=> string(2) "22" [3]=> string(2) "44" [4]=> string(2) "55" [5]=> string(2) "22" } 
array(4) { [0]=> string(2) "22" [1]=> string(2) "33" [3]=> string(2) "44" [4]=> string(2) "55" }
come puoi notare mi ha estratto tutti gli id amici di 22 e, per il secondo, solo una volta, e non c'è 99
quindi riprovalo
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
ciao

ho fatto così e i vardump mi restituiscono ciò :

NULL
NULL
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 amici='S'"); 
while($am=mysql_fetch_array($q)){ 
    $amici_grezzi[]=$am['user_1']; 
    $amici_grezzi[]=$am['user_2']; 
} 
//ripulisci l'array dei valori duplicati 
var_dump($amici_grezzi);echo "<br>"; 
$amici=array_unique($amici_grezzi); 
var_dump($amici);echo "<br>"; 
		 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")or die(mysql_error());       
    $row=mysql_fetch_array($q); 
    /* ****************************************** 
    qui ho un piccolo dubbio 
    essendo $row un array, $data diventa un array di array 
    quindi per estrarre i dati si dovrebbe fare un doppio foreach o usare serialize/unserialize 
    ****************************************** */ 
    $data[]=$row; 
   
    }  
     var_dump($data);echo "<br><br>";  
     return $data;
		
 
    

//quindi per verificare 
var_dump($data);echo "<br><br>"; 
		$data[]=$row;
	    return $data;
		
    }
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
se cambio la tabella relationship come da tuo consiglio così i vardump restituiscono


NULL
NULL
NULL

PHP:
CREATE TABLE IF NOT EXISTS `relationship` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `user_1` bigint(20) NOT NULL,
  `user_2` bigint(20) NOT NULL,
  `amico` enum('S','N') NOT NULL DEFAULT 'N',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=65 ;
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
diceva ..

eppur si muove ....

questo è quello che ora mi restituisce il vardump


array(38) { [0]=> string(2) "54" [1]=> string(2) "57" [2]=> string(2) "54" [3]=> string(2) "57" [4]=> string(2) "54" [5]=> string(2) "55" [6]=> string(2) "55" [7]=> string(2) "54" [8]=> string(2) "57" [9]=> string(2) "54" [10]=> string(2) "57" [11]=> string(2) "54" [12]=> string(2) "54" [13]=> string(2) "61" [14]=> string(2) "54" [15]=> string(2) "55" [16]=> string(2) "54" [17]=> string(2) "55" [18]=> string(2) "54" [19]=> string(2) "55" [20]=> string(2) "55" [21]=> string(2) "54" [22]=> string(2) "54" [23]=> string(2) "54" [24]=> string(2) "54" [25]=> string(2) "55" [26]=> string(2) "54" [27]=> string(2) "54" [28]=> string(2) "54" [29]=> string(2) "54" [30]=> string(2) "54" [31]=> string(2) "54" [32]=> string(2) "54" [33]=> string(2) "54" [34]=> string(2) "54" [35]=> string(2) "54" [36]=> string(2) "54" [37]=> string(2) "55" }
array(4) { [0]=> string(2) "54" [1]=> string(2) "57" [5]=> string(2) "55" [13]=> string(2) "61" }
array(4) { [0]=> array(10) { [0]=> string(2) "66" ["msg_id"]=> string(2) "66" [1]=> string(2) "54" ["uid_fk"]=> string(2) "54" [2]=> string(5) "jkljk" ["message"]=> string(5) "jkljk" [3]=> string(10) "1320870329" ["created"]=> string(10) "1320870329" [4]=> string(5) "admin" ["username"]=> string(5) "admin" } [1]=> bool(false) [2]=> array(10) { [0]=> string(2) "73" ["msg_id"]=> string(2) "73" [1]=> string(2) "55" ["uid_fk"]=> string(2) "55" [2]=> string(10) "fanculooo " ["message"]=> string(10) "fanculooo " [3]=> string(10) "1320871883" ["created"]=> string(10) "1320871883" [4]=> string(5) "admin" ["username"]=> string(5) "admin" } [3]=> array(10) { [0]=> string(3) "196" ["msg_id"]=> string(3) "196" [1]=> string(2) "61" ["uid_fk"]=> string(2) "61" [2]=> string(31) "admin è un pirlaaaa" ["message"]=> string(31) "admin è un pirlaaaa" [3]=> string(10) "1321129686" ["created"]=> string(10) "1321129686" [4]=> string(5) "admin" ["username"]=> string(5) "admin" } }
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
problema cmq ...

non mi posta tutti i post e se scrivo un post dopo che refrescho la pagina non c'è più il post ....
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
SIIIIIIII

almeno qualcosa di nuovo c'è ...

naturalmente grazie mille per la tua disponibilità , nel frattempo io continuo a provare e riprova pezzi di codice ma niente da fare ...
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
in effetti come pensavo $data è un array di array, quindi ora vediamo come meglio trattarlo
comunque se non vedo male dentro c'è tutto compreso l'username
fammi queste due prove modificando il ciclo foreach
togli i var_dump precedenti per non fare confusione
prova 1)
PHP:
<?php
//...........
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")or die(mysql_error());        
    if(mysql_num_rows($q)>0){//aggiunto l'if
		$row=mysql_fetch_array($q);  
		$data[]=$row;  
    }
}  
var_dump($data);
//...........
?>
prova 2)
PHP:
<?php
//...........
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")or die(mysql_error());        
    if(mysql_num_rows($q)>0){//aggiunto l'if
		$row=mysql_fetch_array($q);  
		$data[]=serialize($row); //aggiunto serialize
    }
}  
var_dump($data);
//...........
?>
poi posta i risultati dei var_dump delle due prove
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ma prima quel var_dump ti restituiva

array(4) { [0]=> array(10) { [0]=> string(2) "66" ["msg_id"]=> string(2) "66" [1]=> string(2) "54" ["uid_fk"]=> string(2) "54" [2]=> string(5) "jkljk" ["message"]=> string(5) "jkljk" [3]=> string(10) "1320870329" ["created"]=> string(10) "1320870329" [4]=> ecc...

non vorrei che fosse quell'if che avevo messo perchè nel dump ho visto un bool=>FALSE da qualche parte pensando che potesse essere un record con qualche campo vuoto.
c'è un'altra cosa che devo capire: perche raddoppia i valori, es: [0]=> string(2) "66" ["msg_id"]=> string(2) "66"
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
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")or die(mysql_error());       
    $row=mysql_fetch_assoc($q); 
    
    $data[]=$row; 
    }
   
       return $data;
   
 }
così tutto come prima
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
cosí nada risultati

PHP:
  // 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")or die(mysql_error());         
    if(mysql_num_rows($q)>0){//aggiunto l'if 
        $row=mysql_fetch_array($q);   
        $data[]=serialize($row); //aggiunto serialize 
    } 
}   
var_dump($data);
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non dire quattro sinchè non l'hai nel sacco, ma forse forse ci siamo

PHP:
//...
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;

aggiunta: da quando i var_dump ti restituivano tutta quella pappardella ha modificato qualcos'altro?
 
Ultima modifica:
Stato
Chiusa ad ulteriori risposte.
Discussioni simili
Autore Titolo Forum Risposte Data
S Problemi estrazione username PHP 59
K Estrazione di più risultati da tabelle correlate PHP 5
E Progressbar estrazione dati da tabella mySQL Ajax 9
L Estrazione dati php Database 6
L Estrazione dati casuali non doppioni MySQL 1
D Chiave unica in estrazione dati da array php PHP 0
L Estrazione valori max su più campi MySQL 4
M [PHP] Estrazione random con nomi presi dal db PHP 22
gandalf1959 Estrazione e visualizzazione del simbolo dell'euro php/mysqli PHP 0
ronny1710 Estrazione Dati Tessera Sanitaria .NET Framework 1
F Estrazione Email di persone selezionate e attive / facebook + invio di massa! Annunci servizi di Social Media Marketing 0
V Estrazione di una singola banda da file multi banda (RGB) con Python Programmazione 0
creatorweb [PHP] estrazione ciclica dati con 2 dati alla volta PHP 2
O [PHP] problema estrazione immagine da db PHP 12
Gigi87 [PHP] Estrazione dati da forum o da social network PHP 1
V [PHP] Estrazione con SQL PHP 1
L estrazione dati da mysql in php e salvataggio in cartella del server PHP 51
M [MS Access] Estrazione record multipli MS Access 1
E [PHP] estrazione dati in modo non continuativo PHP 1
S [PHP] estrazione dal DB complicata PHP 7
asevenx [Javascript] Estrazione dal database di un valore in base ad una scelta Javascript 7
S Php e mysql, estrazione da una tabella e inserimento in un'altra tabella PHP 14
P Probelma estrazione stringa PHP 5
C Estrazione Dati da Pagine Gialle PHP 0
L Estrazione Articoli Random da Tabella senza doppioni PHP 1
A Estrazione dati da tabella sql MySQL 27
gandalf1959 Estrazione di un singolo dato da una ricerca mysql PHP 1
T Codice per estrazione dati da db PHP 4
F estrazione codice Javascript 0
R Javascript e html - estrazione EXIF da jpg con link per geolocalizzazione google maps Javascript 0
D php estrazione random nomi e senza ripetizione PHP 14
M Problema con estrazione coordinate da google geocoding PHP 1
L Conversione date ed estrazione PHP 0
L estrazione dati per login PHP 0
W Estrazione dati da DB PHP 20
N Problemi estrazione / visualizzazione immagini dal database con PDO PHP 2
L Estrazione dati per settimana. PHP 13
L estrazione dati e immagini in contemporanea PHP 4
B Estrazione Database valori multipli MySQL 4
M estrazione dati casuali da database Database 0
A Evitare estrazione record doppioni PHP 2
C [PHP][MY SQL] - Estrazione dati database tramite form PHP 8
G estrazione dati da DB tramite PHP errore time out PHP 2
A problema estrazione singolo valore e memorizzazione in variabile PHP 1
B Estrazione dati utente loggato MySQL 1
W Estrazione dati DB da lista MySQL 1
M Connessione Database ed estrazione dati Javascript 6
H Problema riguardo l'estrazione di record dal DB tramite codice univoco PHP 7
G Script php estrazione email PHP 8
D [RISOLTO] Estrazione parole INPUT Javascript 2

Discussioni simili