Foros del Web » Programando para Internet » PHP »

consulta mysql me muestra 0 registro

Estas en el tema de consulta mysql me muestra 0 registro en el foro de PHP en Foros del Web. Al pasarle varios valores en mi consulta me muestra 0 registro y tengo dos hice lo siguiente. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $array = ...
  #1 (permalink)  
Antiguo 01/02/2016, 09:07
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
consulta mysql me muestra 0 registro

Al pasarle varios valores en mi consulta me muestra 0 registro y tengo dos hice lo siguiente.

Código PHP:
Ver original
  1. $array=array("ana","victor","kevin");
  2. $string=implode(",",$array);
  3.  
  4. $sql="select * from registros where nombre in(?)";
  5. $pdo=$db->prepare($sql);
  6. $pdo->bindParam(1,$string);

si pruebo la consulta no me da errores solo que deberia mostrarme dos registro y me muestra 0. el array de nombre los extraigo de una base de datos.
  #2 (permalink)  
Antiguo 01/02/2016, 09:21
Usuario no validado
 
Fecha de Ingreso: enero-2010
Ubicación: Maturín, Monagas
Mensajes: 190
Antigüedad: 14 años, 3 meses
Puntos: 24
Respuesta: consulta mysql me muestra 0 registro

No estoy seguro pero si miras la documentación de php muestra esto:

Código PHP:
Ver original
  1. Ejemplo #1 Ejemplo de implode()
  2.  
  3. <?php
  4.  
  5. $array = array('apellido', 'email', 'teléfono');
  6. $separado_por_comas = implode(",", $array);
  7.  
  8. echo $separado_por_comas; // apellido,email,teléfono
hasta hay vas bien pero: mira lo que dice: w3schools sobre la instrucción in de sql:

Código SQL:
Ver original
  1. SELECT * FROM Customers
  2. WHERE City IN ('Paris','London');

las variables deben ser separadas por comillas simples, ahora cuando haces tu busqueda no se colocan, sino que seria:

Código PHP:
Ver original
  1. $sql="select * from registros where nombre in(ana,victor,kevin)";
  2. //y deberia quedar asi:
  3. $sql="select * from registros where nombre in('ana' , 'victor', 'kevin')";

Quizás sea ese el motivo no de resultados, espero pueda ayudarte con esa acotación, saludos.
  #3 (permalink)  
Antiguo 01/02/2016, 10:09
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: consulta mysql me muestra 0 registro

Cita:
Iniciado por leonagelic Ver Mensaje
No estoy seguro pero si miras la documentación de php muestra esto:

Código PHP:
Ver original
  1. Ejemplo #1 Ejemplo de implode()
  2.  
  3. <?php
  4.  
  5. $array = array('apellido', 'email', 'teléfono');
  6. $separado_por_comas = implode(",", $array);
  7.  
  8. echo $separado_por_comas; // apellido,email,teléfono
hasta hay vas bien pero: mira lo que dice: w3schools sobre la instrucción in de sql:

Código SQL:
Ver original
  1. SELECT * FROM Customers
  2. WHERE City IN ('Paris','London');

las variables deben ser separadas por comillas simples, ahora cuando haces tu busqueda no se colocan, sino que seria:

Código PHP:
Ver original
  1. $sql="select * from registros where nombre in(ana,victor,kevin)";
  2. //y deberia quedar asi:
  3. $sql="select * from registros where nombre in('ana' , 'victor', 'kevin')";

Quizás sea ese el motivo no de resultados, espero pueda ayudarte con esa acotación, saludos.
Hola ya probe de asignarle las comillas simples al array al cargarlo desde php algo asi:

Código PHP:
Ver original
  1. $array[]="'".$row["nombre"]."'";
  #4 (permalink)  
Antiguo 01/02/2016, 10:55
Usuario no validado
 
Fecha de Ingreso: enero-2010
Ubicación: Maturín, Monagas
Mensajes: 190
Antigüedad: 14 años, 3 meses
Puntos: 24
Respuesta: consulta mysql me muestra 0 registro

Si te sirvió es genial y entonces se puede dar el tema como solucionado, saludos...
  #5 (permalink)  
Antiguo 01/02/2016, 14:29
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: consulta mysql me muestra 0 registro

Cita:
Iniciado por leonagelic Ver Mensaje
Si te sirvió es genial y entonces se puede dar el tema como solucionado, saludos...
Hola no esta solucionado quizas me explique mal, me referia que ya probé lo de las comillas antes de que me lo dijeras pero que no resulto, saludos
  #6 (permalink)  
Antiguo 02/02/2016, 08:49
 
Fecha de Ingreso: marzo-2015
Mensajes: 45
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: consulta mysql me muestra 0 registro

Creo que eso no se puede hacer porque al ponerle ? te va a tomar todo el array como si fuera un paramtero por mas que lo separes por comillas y todo en realidad te lo estaria tomando asi:

$sql="select * from registros where nombre in( ' 'ana' , 'victor', 'kevin' ')";
tu variable a buscar seria =" 'ana','victor','kevin' "
y estoy seguro que no existe nadie con ese nombre por eso te da error
  #7 (permalink)  
Antiguo 03/02/2016, 07:24
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: consulta mysql me muestra 0 registro

Cita:
Iniciado por allamosash Ver Mensaje
Creo que eso no se puede hacer porque al ponerle ? te va a tomar todo el array como si fuera un paramtero por mas que lo separes por comillas y todo en realidad te lo estaria tomando asi:

$sql="select * from registros where nombre in( ' 'ana' , 'victor', 'kevin' ')";
tu variable a buscar seria =" 'ana','victor','kevin' "
y estoy seguro que no existe nadie con ese nombre por eso te da error
Hola estas en lo cierto pero esa posibilidad ya la tube en cuenta quitando a la cadena que le paso las comillas del principio y final de esta y nada tambien probe de asignarle comillas a la consulta asi '?' y tampoco, deberia haber alguna manera de hacer esto.

De todas formas si no hubiera manera de hacerlo otra solucion pero no es la que mas me guste es crear un bucle for y recorrer el consulta con una a una de los datos del array que en realidad es lo que hace el IN en mysql recorrer cada valor.
Pero insisto seguro que debe haber un alguna forma de realizar eso.
saludos

Etiquetas: muestra, mysql, registro, select, sql
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 05:39.