Foros del Web » Programando para Internet » PHP »

Problema con SQL con variable en Where

Estas en el tema de Problema con SQL con variable en Where en el foro de PHP en Foros del Web. Estimados amigos, En php, tengo una variable con el valor = admin $UsuarioActual $sql = "SELECT * FROM cs_users_permisos WHERE nick = '$UsuarioActual';"; echo $data ...
  #1 (permalink)  
Antiguo 07/01/2015, 08:17
 
Fecha de Ingreso: enero-2015
Mensajes: 12
Antigüedad: 9 años, 3 meses
Puntos: 0
Problema con SQL con variable en Where

Estimados amigos,

En php, tengo una variable con el valor = admin

$UsuarioActual

$sql = "SELECT * FROM cs_users_permisos WHERE nick = '$UsuarioActual';";

echo $data = $this->db->select($sql);

¿Problema? me da como resultado Array sin resultados

Sin embargo, si lo hago asi: me da correcto

$sql = "SELECT * FROM cs_users_permisos WHERE nick = 'admin';";

echo $data = $this->db->select($sql);

No logro ver donde esta el problema. ¿me podeis ayudar?

Gracias,

Última edición por emiliomartinacevedo; 07/01/2015 a las 08:18 Razón: seguimiento
  #2 (permalink)  
Antiguo 07/01/2015, 08:22
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problema con SQL con variable en Where

Postea el codigo completo, no este resumen.
Es probable que algo se te esté escapando, pero sólo lo podremos saber si posteas el script íntegro.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 07/01/2015, 08:41
 
Fecha de Ingreso: enero-2015
Mensajes: 12
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Problema con SQL con variable en Where

en PHP la function

public function Mostrar_UsuarioDeleteArti($UsuarioActual)
{
?>
//Este script me da el valor correcto = admin
<script type="text/javascript">alert('Usuario: ' + UsuarioActual);</script>
<?php

//funciona
// $sql = "select * from cs_users_permisos where nick = 'admin';";
//no funciona
$sql = "SELECT * FROM cs_users_permisos WHERE nick = '$UsuarioActual';";

echo $data = $this->db->select($sql);

if($data)
return $data;
else
return array();
}

En html la llamada a la function

<script>
var UsuarioActual = "{$fsc->user->nick}";
alert(UsuarioActual)
</script>

{loop="$fsc->Mostrar_UsuarioDeleteArti(UsuarioActual)"}

El tema es que cuando pongo directamente en el sql 'admin' va bien, pero si uso la variable ya me dice que el Array no tiene resultados....

Gracias
  #4 (permalink)  
Antiguo 07/01/2015, 08:45
Avatar de adrirs11  
Fecha de Ingreso: diciembre-2012
Ubicación: BCN
Mensajes: 107
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: Problema con SQL con variable en Where

$sql = "SELECT * FROM cs_users_permisos WHERE nick = '".$UsuarioActual."'";
  #5 (permalink)  
Antiguo 07/01/2015, 08:51
 
Fecha de Ingreso: octubre-2014
Ubicación: Buenos Aires
Mensajes: 278
Antigüedad: 9 años, 6 meses
Puntos: 12
Respuesta: Problema con SQL con variable en Where

Haz un print de $UsuarioActual para ver si esta llegando con datos.

Saludos.
__________________
http://www.sp-vision.net
  #6 (permalink)  
Antiguo 07/01/2015, 09:03
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problema con SQL con variable en Where

Cita:
Iniciado por emiliomartinacevedo Ver Mensaje
en PHP la function

Código PHP:
public function Mostrar_UsuarioDeleteArti($UsuarioActual)
{
?>
//Este script me da el valor correcto = admin
<script type="text/javascript">alert('Usuario: ' + UsuarioActual);</script>
<?php

//funciona
    // $sql = "select * from cs_users_permisos where nick = 'admin';";
//no funciona
    
$sql "SELECT * FROM cs_users_permisos WHERE nick = '$UsuarioActual';";
    
    echo 
$data $this->db->select($sql);
     
    if(
$data)
          return 
$data;
       else
          return array();
}  

En html la llamada a la function

<
script>
var 
UsuarioActual "{$fsc->user->nick}";
alert(UsuarioActual)
</script>
          
{loop="$fsc->Mostrar_UsuarioDeleteArti(UsuarioActual)"}
El tema es que cuando pongo directamente en el sql 'admin' va bien, pero si uso la variable ya me dice que el Array no tiene resultados....

Gracias
No veo por donde pasas la variable en cuestión al PHP (no nos olvidemso que no son los mismos contextos).
No veo que la pasases por POST, GET o por un request...

¿Cómo se supone que PHP se netera del dato?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 07/01/2015, 09:34
 
Fecha de Ingreso: enero-2015
Mensajes: 12
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Problema con SQL con variable en Where

Gracias a todos por responder... le voy diciendo...

mauritosuarez
He hecho el print y el alert y me dan el valor correcto...

gnzsoloyo
La variable da el valor correcto... eso ya lo tengo controlado.. el dato lo tomo de la base de datos previamente pero eso ya esta todo ok... el problema esta en la sql, pues el valor es correcto... al menos eso creo yo..

adrirs11
He probado lo que dices pero sigue sin funcionar...

Continuo con el problema....
  #8 (permalink)  
Antiguo 07/01/2015, 09:49
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problema con SQL con variable en Where

Creo que no me estás entendiendo...

¿En donde se carga la variable que usas en esta parte?:
Código PHP:
Ver original
  1. $sql = "SELECT * FROM cs_users_permisos WHERE nick = '$UsuarioActual';";
En el script que nos pasas, no hay ninguna parte donde esa variable tome el dato "admin" que mencionas.
¿De dónde llega? ¿De otra fucnion en PHP?
¿Cómo la obtienes?

Partamos de una base simple: Si la variable recibe el dato, forzosamente debe devolverte lo mismo que hardcodeando el valor. Si no edvuelve datos entonces esa variable, en ese punto está vacía.

NO hay otra.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 07/01/2015, 09:55
 
Fecha de Ingreso: enero-2015
Mensajes: 12
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Problema con SQL con variable en Where

gnzsoloyo

Perdona... igual yo no te he entendido...

lo recoge de la function.. el parametro.. que a su vez lo recibe de un html

public function Mostrar_UsuarioDeleteArti($UsuarioActual)

$UsusarioActual .. el valor, admin o el que sea....

Cierto, creo que esta vacia.. pero no se por que... si hasta ahi, esta bien.. el alert lo muestra...

Última edición por emiliomartinacevedo; 07/01/2015 a las 10:00 Razón: añadir
  #10 (permalink)  
Antiguo 07/01/2015, 10:08
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problema con SQL con variable en Where

Cita:
lo recoge de la function.. el parametro.. que a su vez lo recibe de un html
¿Tienes claro que un parámetro enviado desde HTML a una función en PHP sólo puede hacerse por medio de un FORM, que lo pase por POST o GET, o por AJAX?
Si la toma del dato la haces por medio de JavaScript, a menos que lo envies por Ajax, nunca le llegará nada a PHP porque funcionan en contextos distintos (JavaScript es navgador, PHP servidor).

Lo que me gustaría es que nos postearas:
1) El codigo del formulario donde se ingresa o selecciona ese "admin".
2) El código de cómo recibe ese valor el script de PHP, para luego pasarlo a esa función.

¿Se entiende?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 07/01/2015, 10:46
 
Fecha de Ingreso: enero-2015
Mensajes: 12
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Problema con SQL con variable en Where

Yo te agradezco la ayuda, sin embargo, tengo una duda... si estando ya en el php donde uso el sql mediante el alert tengo ya la variable que necesito... lo cual es prueba de que ya esta en ese sitio... por que necesito ir tan atras? no lo interpretes mal... solo digo que si en el php ya tengo el valor que tengo que usar como filtro, ...

Por otro lado, sí, lo tengo en un formulario del html, desde ahi envia ese dato a la function.. la function en php la recibe correctamente, pues la ejecuto desde el script...

no se que más puedo decir.. salvo que estoy bloqueado...
  #12 (permalink)  
Antiguo 07/01/2015, 10:55
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problema con SQL con variable en Where

¿Hay alguna razón para que evadas el postear los scripts que te menciono?

Por otro lado, el "alert" que mencionas, no está operando en PHP, y la variable que conteine NO es la de PHP, sino la de JavaScript. No es lo mismo...

Para que te quede claro: Esto NO se está ejecutando en PHP:
Código Javascript:
Ver original
  1. <script type="text/javascript">alert('Usuario: ' + UsuarioActual);</script>
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #13 (permalink)  
Antiguo 07/01/2015, 11:09
 
Fecha de Ingreso: enero-2015
Mensajes: 12
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Problema con SQL con variable en Where

Vale, perdona que soy nuevo en esto... se trata de una aplicación web de licencia GNU libre que estoy adaptando a mis necesidades... pero ahora me he topado con este problema....

Yo puedo buscar el código del formulario que ingresa pero este a su vez depende de otro, y de plugins, etc, etc.. no es que este evadiendo.. si no que no se exactamente que es lo que tengo que postear...

Voy a intentar ponerlo...
  #14 (permalink)  
Antiguo 07/01/2015, 11:26
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problema con SQL con variable en Where

Ok. Empecemos por un detalle que debes entender claramente:
1) Todo lo que se ejecuta como JavaScript es invisible para PHP. Se ejecuta en el navegador (IE, Opera, Chrome, Firefox, etc), pero jamás le llega a PHP a menos que el formulario en el navegador envíe al servidor los datos por POST o GET, cosa que sólo puedes saber si sucede mirando el código de ese formulario...
2) Todo lo que se ejecuta en PHP es invisible para JavaScript, porque no se ejecuta en el navegador, sino en el servidor donde está el script de PHP.

¿Queda eso claro?

Lo que sí puedes hacer con PHP es enviar al navegador bloques de javaScript por medio de echo, los cuales al llegar al navegador se ejecutan como JavaScript.

Otra posibilidad es que el JavaScript esté intercalado entre bloques de PHP, como lo que nos has mostrado, caso en el cual al navegar en la pagina se ejecuta en el navegador el JavaScript, pero los bloques de PHP NO, esos se procesan en el servidor.

En definitiva, si vas a querer resolver el problema que tienes, y necesitas ayuda, debes empezar por mostrarnos el script del formulario, y a partir de allí veremos como seguir. Pero sin código, no hay nada que podamos decirte.

Si te fijas en otros posts de este subforo, verás que siempre pedimos eso, y todos los que preguntan nos postean los códigos que les causan problemas.

Tomate el tiempo, busca los scripts que te sugiero, y postalos aca. Allí veremos como se resuelve.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #15 (permalink)  
Antiguo 09/01/2015, 02:25
 
Fecha de Ingreso: enero-2015
Mensajes: 12
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Problema con SQL con variable en Where

Muchas gracias por participar. Ya lo he resuelto, resulta que recopilando lo que tenia que postear, me he encontrado con una function que hacia lo que pretendia. Asi que resuelto.

De todas formas, he aprendido mucho con esta duda o problema, y vuestras respuetas, ya veo que html, php y Java son entornos diferentes, y no necesariamente se comunican ... ¡¡ lección aprendida !!!

Gracias, se puede cerrar.

PD: El problema era efectivamente que la variable estaba vacia. Luego, ya vi como recuperar ese valor y asignarlo a una variable mediante una function propia de la aplicación.

Etiquetas: select, sql, variable
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:21.