Foros del Web » Programando para Internet » PHP »

orden : WHERE 1 OR 2 =$variable

Estas en el tema de orden : WHERE 1 OR 2 =$variable en el foro de PHP en Foros del Web. Hola, como ejecuto esta órden: $consulta="SELECT * FROM amigos WHERE de OR para= '".$idsesion."'"; Es posible hacer esto? Muchas gracias....
  #1 (permalink)  
Antiguo 14/04/2012, 01:11
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 meses
Puntos: 14
orden : WHERE 1 OR 2 =$variable

Hola, como ejecuto esta órden:

$consulta="SELECT * FROM amigos WHERE de OR para= '".$idsesion."'";

Es posible hacer esto? Muchas gracias.
  #2 (permalink)  
Antiguo 14/04/2012, 01:24
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: orden : WHERE 1 OR 2 =$variable

O sea si lo que queres es hacer where algo=algo1 or algo=algo2 , si se puede, igual no entendí mucho lo que preguntaste.
  #3 (permalink)  
Antiguo 14/04/2012, 02:05
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 meses
Puntos: 14
Respuesta: orden : WHERE 1 OR 2 =$variable

Si, es eso pero no se porque no se me cumple la condición, gracias de todos modos.
  #4 (permalink)  
Antiguo 14/04/2012, 02:08
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: orden : WHERE 1 OR 2 =$variable

Pero mostranos tu código entero de la consulta y ahí te ayudamos.
  #5 (permalink)  
Antiguo 14/04/2012, 03:06
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: orden : WHERE 1 OR 2 =$variable

Cita:
Iniciado por ananda Ver Mensaje
Si, es eso pero no se porque no se me cumple la condición, gracias de todos modos.
No se cumple porque no lo haces como te dijo @rodrigo791

Código PHP:
$consulta="SELECT * FROM amigos WHERE de = '".$idsesion."' OR para= '".$idsesion."'"
saludos,
__________________
Tu álbum de cromos online!!
  #6 (permalink)  
Antiguo 15/04/2012, 01:39
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 meses
Puntos: 14
Respuesta: orden : WHERE 1 OR 2 =$variable

Nada todavía no funciona, la cosa es que quiero hacer que al ver un usuario si nadie ha mandado una solicitud a nadie (nadie de los dos, o el perfil o el usuario de la sesion) haya un boton llamado amistad para mandar una solicitud. El DE es quien manda la solicitud y el PARA quien la recibe, y habia hecho este script para comprobar eso:

Código PHP:
$consulta="SELECT * FROM amigos WHERE de = '".$idsesion."' OR para= '".$idsesion."'"; 
$resultado=mysql_query($consulta) or die (mysql_error());  
if (mysql_num_rows($resultado) == 0){
?>
<div id="divamistad" class="divamistad" >
<input type="button" class="botonamistad" name="botonamistad" id="botonamistad" value="Amistad" onClick="location.href='amistad.php?id=<?php echo $idperfil ?>'" />
</div>
<?php
}
Quizás falla mi planteamiento pero no sé a mi me parece correcto, mira si existe una columna en la base de datos y si no existe le puede enviar solicitud.
  #7 (permalink)  
Antiguo 15/04/2012, 02:07
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: orden : WHERE 1 OR 2 =$variable

En ese caso la condición del select debe ser si o si:

Código PHP:
$consulta="SELECT * FROM amigos WHERE de = ".$idsesion." AND para= ".$idsesion.""
He quitado las comillas simples porque entiendo que que $idsesion es un integer, en caso que sea un string sería:
Código PHP:
$consulta="SELECT * FROM amigos WHERE de = '".$idsesion."' AND para= '".$idsesion."'"
saludos,
__________________
Tu álbum de cromos online!!
  #8 (permalink)  
Antiguo 15/04/2012, 02:15
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 meses
Puntos: 14
Respuesta: orden : WHERE 1 OR 2 =$variable

Cita:
Iniciado por santris Ver Mensaje
En ese caso la condición del select debe ser si o si:

Código PHP:
$consulta="SELECT * FROM amigos WHERE de = ".$idsesion." AND para= ".$idsesion.""
He quitado las comillas simples porque entiendo que que $idsesion es un integer, en caso que sea un string sería:
Código PHP:
$consulta="SELECT * FROM amigos WHERE de = '".$idsesion."' AND para= '".$idsesion."'"
saludos,
Pero el problema es que ahora me sale SIEMPRE amistad ya que si el id de la sesion es quien envia la solicitud y quien la recibe a la vez, me va a dar siempre que no hay ninguna columna así y por lo tanto me va a dejar enviar solicitud.
Quizás no he explicado bien la estructura.

El de es quien manda la solicitud, el para es quien la recibe.

Entonces yo habia pensado si nadie ha mandado solicitud ni ha recibido solicitud del otro, que salga lo de amistad, entonces si para = idsesion o el de = idsesion
y esta columna no existe que salga el boton, creo que me equivoco en el planteamiento. Gracias por todo, siempre muy atento ;)
  #9 (permalink)  
Antiguo 15/04/2012, 02:23
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: orden : WHERE 1 OR 2 =$variable

Pues entonces ya está bien la consulta anterior. Solo que uno de los dos campos coincida con el $idsesion debería de contabilizar un registro, prueba sin las comillas... y haz un echo de la consuta y el resultado.

Código PHP:
$consulta="SELECT * FROM amigos WHERE de = ".$idsesion." OR para= ".$idsesion."";
echo 
$consulta;
$num mysql_num_rows($consuta);
echo 
$num
__________________
Tu álbum de cromos online!!
  #10 (permalink)  
Antiguo 15/04/2012, 03:43
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: orden : WHERE 1 OR 2 =$variable

Ok, creo haber entendido lo que quieres, no había visto la variable $idperfil

Código PHP:
$consulta="SELECT * FROM amigos WHERE (de = ".$idsesion." OR de = ".$idperfil.") AND (para = ".$idsesion." OR para = ".$idperfil.")"
ejemplo:

user sesion = 1
user perfil = 2

posibles casos

0 - 0 ; no hay coincidencias muestra el boton
1 - 1 ; poco probable
1 - 2 ; hay amistad no muestra el boton
2 - 1 ; hay amistad no muestra el boton
2 - 2 ; poco probable

Espero no haberme liado
__________________
Tu álbum de cromos online!!
  #11 (permalink)  
Antiguo 15/04/2012, 04:14
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 meses
Puntos: 14
Respuesta: orden : WHERE 1 OR 2 =$variable

Ok, me sale esto:


SELECT * FROM amigos WHERE de = 1 OR para= 1
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in on line 99
  #12 (permalink)  
Antiguo 15/04/2012, 04:46
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: orden : WHERE 1 OR 2 =$variable

Cita:
Iniciado por ananda Ver Mensaje
Ok, me sale esto:


SELECT * FROM amigos WHERE de = 1 OR para= 1
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in on line 99
te da un error, mira si tienes bien la conexión a la BD, y revisa el post que puse más arriba
__________________
Tu álbum de cromos online!!
  #13 (permalink)  
Antiguo 15/04/2012, 04:58
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 meses
Puntos: 14
Respuesta: orden : WHERE 1 OR 2 =$variable

Cita:
Iniciado por santris Ver Mensaje
Ok, creo haber entendido lo que quieres, no había visto la variable $idperfil

Código PHP:
$consulta="SELECT * FROM amigos WHERE (de = ".$idsesion." OR de = ".$idperfil.") AND (para = ".$idsesion." OR para = ".$idperfil.")"
ejemplo:

user sesion = 1
user perfil = 2

posibles casos

0 - 0 ; no hay coincidencias muestra el boton
1 - 1 ; poco probable
1 - 2 ; hay amistad no muestra el boton
2 - 1 ; hay amistad no muestra el boton
2 - 2 ; poco probable

Espero no haberme liado
Perdón, no había leido este comentario, es normal que no lo entiendas ya que por parte mia al explicar el funcionamiento he cometido un error y es este:
hay 3 campos:

de: quien envia la solicitud

para: quien la recibe

estado: si el estado es 1 (la solicitud esta pendiente y todavia no ha sido aceptada por el para) y si es 2 ya son amigos.

entonces en de y para, he puesto los ids de cada usuario. He probado de la manera que me has dicho pero me sale para enviarle solicitud de amistad SIEMPRE siendo amigos, habiéndole enviado una solicitud antes o no habiendo contactado nunca con el.

No sé si ahora lo has entendido, quizás no lo he explicado muy bien, gracias por la ayuda tío eres un crack ;)
  #14 (permalink)  
Antiguo 15/04/2012, 05:10
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: orden : WHERE 1 OR 2 =$variable

donde (de = 1 o de = 2) y (para = 1 o para = 2)

solo hay tres posibles casos

1 - 2 son amigos
2 - 1 son amigos
o - o no son amigos

No entiendo porqué no te funciona

lo del estado lo puedes solucionar así:

Código PHP:
$consulta="SELECT * FROM amigos WHERE (de = ".$idsesion." OR de = ".$idperfil.") AND (para = ".$idsesion." OR para = ".$idperfil.") AND estado !=0"
__________________
Tu álbum de cromos online!!
  #15 (permalink)  
Antiguo 15/04/2012, 05:17
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 meses
Puntos: 14
Respuesta: orden : WHERE 1 OR 2 =$variable

Cita:
Iniciado por santris Ver Mensaje
donde (de = 1 o de = 2) y (para = 1 o para = 2)

solo hay tres posibles casos

1 - 2 son amigos
2 - 1 son amigos
o - o no son amigos

No entiendo porqué no te funciona

lo del estado lo puedes solucionar así:

Código PHP:
$consulta="SELECT * FROM amigos WHERE (de = ".$idsesion." OR de = ".$idperfil.") AND (para = ".$idsesion." OR para = ".$idperfil.") AND estado !=0"

Hmm todavía sigue igual solucionando el estado, pero no entiendo porque pones 1-2 2-1 o 0-0. El de es el id del usuario, por ejemplo una columna podria quedar asi:

de para estado
47 129 1

esto significaria q el usuario 47 le envio una solicitud al 129 pero todavia no ha sido aceptada

de para estado
47 129 2

esto es cuando estos dos usuarios son amigos

y lo que no entiendo es porque no me sale, solo tengo que saber si existe o no una columna en la q aparezcan estos dos individuos ya que si no aparecen significa que nadie ha enviado solicitud y entonces debe salir el cartel : amistad.

EDITO:
Ahora lo he dejado así y tendría que funcionar...

Código PHP:
$consulta="SELECT * FROM amigos WHERE (de = ".$idsesion." AND de = ".$idperfil.") OR (para = ".$idperfil." AND para = ".$idsesion.")";
if(mysql_num_rows==0){ 
?>
<div id="divamistad" class="divamistad" >
<input type="button" class="botonamistad" name="botonamistad" id="botonamistad" value="Amistad" onClick="location.href='amistad.php?id=<?php echo $idperfil ?>'" />
</div>
<?php
}

Última edición por ananda; 15/04/2012 a las 05:22
  #16 (permalink)  
Antiguo 15/04/2012, 05:35
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: orden : WHERE 1 OR 2 =$variable

Cita:
Hmm todavía sigue igual solucionando el estado, pero no entiendo porque pones 1-2 2-1 o 0-0. El de es el id del usuario, por ejemplo una columna podria quedar asi:
pero tambien podría ser así;

dependiendo de quien inició la amistad:

de para estado (el 47 inició la amistad)
47 129 1
de para estado (el 129 inició la amistad)
129 47 1

0 - 0 - 0 (nadie inició la amistad, este registro no existe, es simplemente por lógica)

En el post anterior puse estado != 0 y debía ser estado = 0

Código PHP:
$consulta="SELECT * FROM amigos WHERE (de = ".$idsesion." OR de = ".$idperfil.") AND (para = ".$idsesion." OR para = ".$idperfil.") AND estado =0"
__________________
Tu álbum de cromos online!!
  #17 (permalink)  
Antiguo 15/04/2012, 05:44
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 meses
Puntos: 14
Respuesta: orden : WHERE 1 OR 2 =$variable

Cita:
Iniciado por santris Ver Mensaje
pero tambien podría ser así;

dependiendo de quien inició la amistad:

de para estado (el 47 inició la amistad)
47 129 1
de para estado (el 129 inició la amistad)
129 47 1

0 - 0 - 0 (nadie inició la amistad, este registro no existe, es simplemente por lógica)

En el post anterior puse estado != 0 y debía ser estado = 0

Código PHP:
$consulta="SELECT * FROM amigos WHERE (de = ".$idsesion." OR de = ".$idperfil.") AND (para = ".$idsesion." OR para = ".$idperfil.") AND estado =0"

Ah vale, ya te entiendo, pero todavía no he conseguido que funcione, esto me tiene realmente desconcertado xD gracias por todo!

Etiquetas: orden, variables
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 22:17.