Buonasera a tutti,
sono nuovo del forum e spero che qualcuno possa aiutarmi ....
HO scaricato uno script che mi interessava che simula un muro tipo fb da implementare nel mio sito, e fino a qui tutto ok ho sistemato e implementato il codice con il mio db users ecc ....
Il problema viene perchè io vorrei che paperian e paperino che sono amici vedano i loro post e commentino ecc ecc un po' il principio di fb ....
Ora lo scrip originale è questo
<?php
class Wall_Updates {
public $perpage = 10; // Uploads perpage
// Updates
public function Updates($id,$lastid)
{
// More Button
$morequery="";
if($lastid)
$morequery=" and M.msg_id<'".$lastid."' ";
// More Button End
$query = mysql_query("SELECT M.msg_id, M.id_fk, M.message, M.created, U.username,M.uploads FROM messages M, users U WHERE M.id_fk=U.id and M.id_fk='$id' $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($id)
{
$query = mysql_query("SELECT M.msg_id, M.id_fk, M.message, M.created, U.username,M.uploads FROM messages M, users U WHERE M.id_fk=U.id and M.id_fk='$id' $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.id_fk, C.comment, C.created, U.username FROM comments C, users U WHERE C.id_fk=U.id 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($id)
{
$query = mysql_query("SELECT profile_pic FROM `users` WHERE id='$id'") 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($id)
{
$query = mysql_query("SELECT email FROM `users` WHERE id='$id'") 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($id, $update,$uploads)
{
$update=mysql_real_escape_string($update);
$time=time();
$ip=$_SERVER['REMOTE_ADDR'];
$query = mysql_query("SELECT msg_id,message FROM `messages` WHERE id_fk='$id' 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, id_fk, ip,created,uploads) VALUES (N'$update', '$id', '$ip','$time','$uploads')") or die(mysql_error());
$newquery = mysql_query("SELECT M.msg_id, M.id_fk, M.message, M.created, U.username FROM messages M, users U where M.id_fk=U.id and M.id_fk='$id' order by M.msg_id desc limit 1 ");
$result = mysql_fetch_array($newquery);
return $result;
}
else
{
return false;
}
}
//Delete update
public function Delete_Update($id, $msg_id)
{
$query = mysql_query("DELETE FROM `comments` WHERE msg_id_fk = '$msg_id' and id_fk='$id' ") or die(mysql_error());
$query = mysql_query("DELETE FROM `messages` WHERE msg_id = '$msg_id' and id_fk='$id'") or die(mysql_error());
return true;
}
//Image Upload
public function Image_Upload($id, $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,id_fk)values('$image' ,'$id')") or die(mysql_error());
$ids = mysql_insert_id();
return $ids;
}
//get Image Upload
public function Get_Upload_Image($id,$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 id_fk='$id' 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($id,$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 id_fk='$id' 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, id_fk,msg_id_fk,ip,created) VALUES (N'$comment', '$id','$msg_id', '$ip','$time')") or die(mysql_error());
$newquery = mysql_query("SELECT C.com_id, C.id_fk, C.comment, C.msg_id_fk, C.created, U.username FROM comments C, users U where C.id_fk=U.id and C.id_fk='$id' 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($id, $com_id)
{
$query = mysql_query("DELETE FROM `comments` WHERE id_fk='$id' and com_id='$com_id'") or die(mysql_error());
return true;
}
}
?>
Io l'ho modificato cosi sperando che users 1 e users 2 che sono amici vedano quei post ... ma purtroppo modificando la prima query in tutti i modi , o printa lo stesso post per tutti gli utenti, o altri errori ecc ..
codice modificato
class Wall_Updates {
public $perpage = 10; // Uploads perpage
// Updates
public function Updates($id,$lastid)
{
// More Button
$morequery="";
if($lastid)
$morequery=" and M.msg_id<'".$lastid."' ";
// More Button End
$query = mysql_query("SELECT M.msg_id, M.id_fk, M.message, M.created, U.username,M.uploads FROM messages M, users U WHERE M.id_fk=U.id and M.id_fk='$id' $morequery OR M.id_fk=$id IN (SELECT user_1 FROM relationship AS r WHERE r.user_2 = '$uid' AND r.amico = 'S') OR M.id_fk IN (SELECT user_2 FROM relationship AS r WHERE r.user_1 = '$id' AND r.amico = 'S') order by M.msg_id desc limit " .$this->perpage) or die(mysql_error());
while($row=mysql_fetch_array($query))
$data[]=$row;
return $data;
}
Posto anche la tabella relationship
-- phpMyAdmin SQL Dump
-- version 2.11.9.6
-- http://www.phpmyadmin.net
--
-- Host: localhost:3306
-- Generato il: 17 Mar, 2013 at 05:31 PM
-- Versione MySQL: 5.1.58
-- Versione PHP: 5.2.6
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Database: `verdemoneta`
--
-- --------------------------------------------------------
--
-- Struttura della tabella `relationship`
--
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',
`user_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=71 ;
--
-- Dump dei dati per la tabella `relationship`
--
INSERT INTO `relationship` (`id`, `user_1`, `user_2`, `amico`, `user_id`) VALUES
(12, 106, 79, 'S', 0),
(9, 79, 106, 'S', 0),
(70, 102, 106, 'S', 0);