Foros del Web » Programando para Internet » PHP »

variable entre comillas en un select

Estas en el tema de variable entre comillas en un select en el foro de PHP en Foros del Web. Tengo este select: $_pagi_sql = "select titulo_opcion,opcion_redir from opcion_usuario inner join users on users.usuario=opcion_usuario.id_usuario inner join opciones_vd on opciones_vd.id_opcion=opcion_usuario.id_opcion where id_usuario='radar'"; Y donde dice where ...
  #1 (permalink)  
Antiguo 10/08/2005, 09:39
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 12 años, 6 meses
Puntos: 3
variable entre comillas en un select

Tengo este select:
$_pagi_sql = "select titulo_opcion,opcion_redir from opcion_usuario
inner join users on users.usuario=opcion_usuario.id_usuario
inner join opciones_vd on opciones_vd.id_opcion=opcion_usuario.id_opcion
where id_usuario='radar'";
Y donde dice where id_usuario='radar'"; necesito colocar en lugar de 'radar', una variable - $usuario -.
Probe de varias maneras pero no logro darle a las comillas =(
Sinceramente me gano...
Pense en ponerlo en otra variable entre comillas y llevarlo al select, pero igual me quedo en el camino...
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
  #2 (permalink)  
Antiguo 10/08/2005, 09:50
 
Fecha de Ingreso: mayo-2004
Ubicación: SurOeste de Guayaquil
Mensajes: 241
Antigüedad: 13 años, 6 meses
Puntos: 0
seria asi

where id_usuario='$usuario'";
__________________
javier
  #3 (permalink)  
Antiguo 10/08/2005, 10:05
Avatar de Saulinux  
Fecha de Ingreso: agosto-2005
Mensajes: 43
Antigüedad: 12 años, 4 meses
Puntos: 0
Entiendo que el problema esta en que como estas guardando la sentencia SQL en una variable, al leer la variable $_pagi_sql con un echo, veras que usando la solucion de Jayapata12 en lugar de ver where id_usuario='$usuario'., veras where id_usuario='(el valor de $usuario)'.........

Esta solucion no funciona si estas en un bucle y vas generando el valor $usuario, pero en general va bien..... No quiero decir que la anterior solucion este mal OJO

Mi consejo seria que no guardes la sentencia en una variable sino directamente entres el codigo:
mysql_query ("select titulo_opcion,opcion_redir from opcion_usuario
inner join users on users.usuario=opcion_usuario.id_usuario
inner join opciones_vd on opciones_vd.id_opcion=opcion_usuario.id_opcion
where id_usuario='$usuario'",$link); //donde $link es como accedes a tu BD

Veras que funciona
  #4 (permalink)  
Antiguo 10/08/2005, 10:31
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 12 años, 6 meses
Puntos: 3
El problema Saulinux es que necesito la variable, porque estoy usando un include con el que hago paginacion y me pide la variable =(.
Estoy usando el Paginator que baje de este foro.
=(
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
  #5 (permalink)  
Antiguo 10/08/2005, 10:38
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Si el campo id_usuario es numerico la consulta es sin comillas simples:

$_pagi_sql = "select titulo_opcion,opcion_redir from opcion_usuario
inner join users on users.usuario=opcion_usuario.id_usuario
inner join opciones_vd on opciones_vd.id_opcion=opcion_usuario.id_opcion
where id_usuario=$usuario";

Si el campo id_usuario es de tipo texto la consulta es con comillas simples:

$_pagi_sql = "select titulo_opcion,opcion_redir from opcion_usuario
inner join users on users.usuario=opcion_usuario.id_usuario
inner join opciones_vd on opciones_vd.id_opcion=opcion_usuario.id_opcion
where id_usuario='$usuario' ";
  #6 (permalink)  
Antiguo 10/08/2005, 10:49
Avatar de Saulinux  
Fecha de Ingreso: agosto-2005
Mensajes: 43
Antigüedad: 12 años, 4 meses
Puntos: 0
Una manera seria la siguiente:

$_pagi_sql = "select titulo_opcion,opcion_redir from opcion_usuario
inner join users on users.usuario=opcion_usuario.id_usuario
inner join opciones_vd on opciones_vd.id_opcion=opcion_usuario.id_opcion
where id_usuario='".usuario."'";

Talvez no se nota bien, pero seria asi:

where id_usuario=' ".$usuario." '

A veces lo utilizo y me funciona.

O a veces tambien para poner comillas (") dentro de una cadena, puedes usar \"

where id_usuario= \"$usuario\" ";
  #7 (permalink)  
Antiguo 10/08/2005, 11:06
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 12 años, 6 meses
Puntos: 3
Gracias !!!
al fina era where id_usuario=\"$usuario\""
y yo me tildaba y le mandaba despues del \ una comilla simple.
otra duda que a lo mejor me pueden sacar
el where puede tener varias opciones?

o sea where id_usuario=\"$usuario\"" y identificador=1 .
Es para hacer que segun esl usuario y el identificador me haga el select :

$_pagi_sql = "select titulo_opcion,opcion_redir,identificador from opcion_usuario
inner join users on users.usuario=opcion_usuario.id_usuario
inner join opciones_vd on opciones_vd.id_opcion=opcion_usuario.id_opcion
where id_usuario=\"$usuario\"";
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP

Última edición por radarcba; 10/08/2005 a las 11:14
  #8 (permalink)  
Antiguo 10/08/2005, 11:45
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 12 años, 6 meses
Puntos: 3
Resuelto con un simple AND. Por ahora todo va como quiero... Segui asi Pelado !!! =)
Nos seguimeos hablando y GRACIAS por Todo !!!
$_pagi_sql = "select titulo_opcion,opcion_redir,identificador from opcion_usuario
inner join users on users.usuario=opcion_usuario.id_usuario
inner join opciones_vd on opciones_vd.id_opcion=opcion_usuario.id_opcion
where id_usuario=\"$usuario\" AND identificador=1";
le pongo el nro 1 porque ya se que estoy en esa area por eso no vengo con una variable.
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
  #9 (permalink)  
Antiguo 10/08/2005, 21:22
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Parece que llegué un poco tarde. Qué bueno que resolviste tu problema.

De todos modos quiero decir algo respecto a esto:
Cita:
Iniciado por Saulinux
Mi consejo seria que no guardes la sentencia en una variable sino directamente entres el codigo:
mysql_query ("select titulo_opcion,opcion_redir from opcion_usuario
inner join users on users.usuario=opcion_usuario.id_usuario
inner join opciones_vd on opciones_vd.id_opcion=opcion_usuario.id_opcion
where id_usuario='$usuario'",$link); //donde $link es como accedes a tu BD
La verdad es que guardar la sentencia SQL en una variable tiene muchísimas ventajas, sobretodo en el momento de buscar errores o cuando se quiere hacer una capa de abstracción de BD. Yo lo recomendaré siempre.

Saludos
  #10 (permalink)  
Antiguo 11/08/2005, 10:07
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 12 años, 6 meses
Puntos: 3
Gracias Jpinedo. La verdad es que en mi poco tiempo de php, me estoy haciendo adicto a poner consultas en variables. =)
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
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 21:13.