Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] variable en el where

Estas en el tema de variable en el where en el foro de PHP en Foros del Web. tengo este codigo: $cadena=""; foreach($array as $key => $i){ $cadena.="'".$key."'='".$i."' AND "; } $cadenaTotal=substr($cadena,0,-4); $consulta="SELECT * from tabla1 where $cadenaTotal"; el problema es que la ...
  #1 (permalink)  
Antiguo 29/10/2013, 04:01
 
Fecha de Ingreso: julio-2012
Mensajes: 106
Antigüedad: 11 años, 8 meses
Puntos: 2
variable en el where

tengo este codigo:

$cadena="";

foreach($array as $key => $i){

$cadena.="'".$key."'='".$i."' AND ";

}
$cadenaTotal=substr($cadena,0,-4);

$consulta="SELECT * from tabla1 where $cadenaTotal";

el problema es que la consulta me la devuelve vacia por lo que no coje la variable $cadenaTotal ¿donde tengo el fallo?
  #2 (permalink)  
Antiguo 29/10/2013, 04: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: variable en el where

Cita:
¿donde tengo el fallo?
Puede estar en dos lados:
1) No tienes ningún registro en la tabla que cumpla las condiciones que le estás metiendo.
2) Está retornando un error porque no queda bien escrita la consulta.

En cualquiera de las dos situaciones, por lo menos deberías verificar que lo que realmente tiene la consulta es lo que tu supones que tiene:
Código PHP:
$cadena="";

foreach(
$array as $key => $i)
    {
    
$cadena.="'".$key."'='".$i."' AND ";
    }
    
$cadenaTotal=substr($cadena,0,-4);
    
$consulta="SELECT * from tabla1 where $cadenaTotal";
    echo  
$consulta
Si la consult está bien construida, pues simplemente no hay registros que cumplan eso.
Captura lo que tiene la variable en algun momento, y postealo acá. Puede haber otros errores escondidos producto de lo que las variables de entrada contienen, que rompa el SQL (SQL no es PHP, recuérdalo).

Nunca asumas que lo que está es lo que ingresas. Verificalo primero.
__________________
¿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 29/10/2013, 04:12
 
Fecha de Ingreso: julio-2012
Mensajes: 106
Antigüedad: 11 años, 8 meses
Puntos: 2
Respuesta: variable en el where

ya lo he comprobado antes y la consulta me la muestra bien:

SELECT * from tabla1 where 'nombre'='pepe' AND 'apellidos'='garcia'

Etiquetas: select, tabla, 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 20:55.