Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/01/2010, 23:55
manzabud
 
Fecha de Ingreso: julio-2009
Mensajes: 16
Antigüedad: 14 años, 9 meses
Puntos: 0
tengo un problema con un sistema de post

por favor ayudenme es que no le encuentro la solucion debida a esto.
primero la consulta:
Código PHP:
$sql_in=execute("SELECT L.*, P.* FROM userlist as L right join post as P 
on P.userid = L.relationid WHERE (L.userid= '"
.$_SESSION['userid_s']."' 
AND L.friend = 'yes') OR P.userid='"
.$_SESSION['userid_s']."' 
ORDER BY P.postid DESC LIMIT 5"
); 
y las tablas:

USERLIST
--------------------
userid=INT
relationid=INT
friend=VARCHAR(YES, NO)



POST
-------------
userid=INT
post=TEXT
date=DATE
postid=INT
up=INT
down=INT

bueno el problema es que cada vez que imprimo:
Código PHP:
 if (mysql_num_rows($sql_in)!=0) {
while(
$r=mysql_fetch_array($sql_in)) { 
me toca colocarle:
Código PHP:
if ($postid!=$id) { //to not repeat twice $_SESSION['userid_s'] post
$id=$r['postid']; 
ya que cuando se encuentra un post con userid=$_SESSION['userid_s'] osea con el userid de la session del usuario en turno lo imprime tantas veces amigo tenga esta persona.
POr ejemplo si yo con el numero de usuario 1 tengo amistad con el usuario 2 y el numero de usuario 3 en la tabla USERLIST debera de aparecer algo como esto:

USERLIST
-----------
userid relationid friend
1 2 yes
2 1 yes
1 3 yes
3 1 yes


En este caso el post que sigue si tiene el numero de usuario 1 lo repetira 2 veces ya que en la consulta aparece:

Código PHP:
P.userid L.relationid 
y tengo 2 amigos...

Por favor me gustaria no tenber que colocar este condicional:
Código PHP:
if ($postid!=$id) { //to not repeat twice $_SESSION['userid_s'] post
$id=$r['postid']; 
que es el que me ayuda momentaneamente a que esto no pase y elaborar una sola consulta que se encargue de todo y qeu sea lo mas simle y entendible posible...

Muchas gracias de antemano y que Dios les bendiga en este nuevo año 2010