Foros del Web » Programando para Internet » PHP »

Consulta inversa

Estas en el tema de Consulta inversa en el foro de PHP en Foros del Web. Hola a todos, estoy haciendo un sistema de amigos y perfiles pero tengo un problemilla. Cuando un usuario invita a otro a ser su amigo ...
  #1 (permalink)  
Antiguo 16/10/2011, 04:18
 
Fecha de Ingreso: septiembre-2011
Mensajes: 5
Antigüedad: 13 años, 3 meses
Puntos: 0
Consulta inversa

Hola a todos, estoy haciendo un sistema de amigos y perfiles pero tengo un problemilla. Cuando un usuario invita a otro a ser su amigo quiero que en el menu cambie la opcion solicitar amistad por este usuario ya es tu amigo.
Este es el codigo

Código PHP:
include ('conectar.php');
$nick=$_SESSION['usuario'];
$id_user=$_GET['id_user'];
$user_remite=$_GET['user_remite'];
[
COLOR="Red"]$result=mysql_query("SELECT id FROM amigos WHERE remite=('$user_remite') AND destino=('$nick')"$link) or die(mysql_error());[/COLOR]
$row mysql_fetch_array($result);
$id_amigo=$row['id'];
$result2=mysql_query("SELECT * FROM amigos WHERE id=('$id_amigo')"$link) or die(mysql_error());
$row2=mysql_fetch_array($result2);
$destino=$row2['destino'];
$remite=$row2['remite'];
$estado=$row2['estado'];

if (
mysql_num_rows($result) == 0) {
echo  
"<p><strong><a href=amigos.php?id_user=$id_user&user_remite=$user_remite>SOLICITAR AMISTAD </a>";
}
if(
$estado == 'pendiente') {
echo 
"AMISTAD PENDIENTE DE ACEPTACION ";
}
if (
$estado=="rechazado") {
echo 
"AMISTAD NO ACEPTADA ";
}
if (
$estado=="aceptado") {
echo 
"YA ERES AMIGO DE $user_remite ";
}
?> 
El problema está en la consulta $RESULT que no consigo que lo haga a la inversa, es decir quiero que haga el select de esta consulta pero tambien lo haga si remite=$nick y destino=$user_remite

Es decir, quiero que la consulta sea:
$result=mysql_query("SELECT id FROM amigos WHERE remite=('$user_remite') AND destino=('$nick')" O VICEVERSA

Espero haberme explicado con claridad, y gracias anticipadas a todos.
Un saludo
  #2 (permalink)  
Antiguo 16/10/2011, 06:38
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 13 años, 3 meses
Puntos: 297
Respuesta: Consulta inversa

¿El campo ID, qué contiene y de que tipo es? además ¿cuál es la estructura de la tabla amigos?
  #3 (permalink)  
Antiguo 18/10/2011, 14:29
 
Fecha de Ingreso: septiembre-2011
Mensajes: 5
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Consulta inversa

Gracias por contestar haskpk:
Al final he solucionado el problema enfocandolo de otra manera

En la solicitud de amistad he puesto dos insert intercambiando remite y destino y asi no tengo problema en la consulta

mysql_query("INSERT INTO amigos (id,remite,destino,estado) VALUES('','$remite','$user_remite','pendiente')",$ link);

mysql_query("INSERT INTO amigos (id,remite,destino,estado) VALUES('','$user_remite','$remite','aceptado')",$l ink);
  #4 (permalink)  
Antiguo 18/10/2011, 17:03
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 5 meses
Puntos: 416
Respuesta: Consulta inversa

Código SQL:
Ver original
  1. SELECT id FROM amigos WHERE ( remite=('$user_remite') AND destino=('$nick') ) OR ( remite=('$nick') AND destino=('$user_remite') )

El punto esta en agrupar ambas consultas y luego usar un OR para que siempre y cuando se cumpla una de las dos, devuelva resultados.

Etiquetas: inversa, mysql, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:21.