Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Consulta con php pdo

Estas en el tema de Consulta con php pdo en el foro de PHP en Foros del Web. Buenas, Tengo el siguiente codigo Código PHP: $sql  =  "SELECT p.id_producto,p.nombre_producto,p.pcosto_producto,p.precio_producto,p.id_marca,p.id_proveedor,p.cantidad_producto,p.observaciones_producto,p.fecha_alta_producto,m.id_marca,m.nombre_marca,prov.id_proveedor,prov.nombre_proveedor                                FROM productos p, marcas m, proveedores prov                                WHERE p.id_marca=m.id_marca AND p.id_proveedor=prov.id_proveedor ORDER BY p.nombre_producto LIMIT 150" ;     try {          $db  =  getConnection ();          $stmt  =  $db -> query ...
  #1 (permalink)  
Antiguo 10/05/2015, 13:32
Avatar de carscx  
Fecha de Ingreso: noviembre-2008
Mensajes: 227
Antigüedad: 15 años, 5 meses
Puntos: 10
Pregunta Consulta con php pdo

Buenas,

Tengo el siguiente codigo

Código PHP:
$sql "SELECT p.id_producto,p.nombre_producto,p.pcosto_producto,p.precio_producto,p.id_marca,p.id_proveedor,p.cantidad_producto,p.observaciones_producto,p.fecha_alta_producto,m.id_marca,m.nombre_marca,prov.id_proveedor,prov.nombre_proveedor
                               FROM productos p, marcas m, proveedores prov
                               WHERE p.id_marca=m.id_marca AND p.id_proveedor=prov.id_proveedor ORDER BY p.nombre_producto LIMIT 150"
;
    try {
        
$db getConnection();
        
$stmt $db->query($sql);
        
$productos $stmt->fetchAll(PDO::FETCH_OBJ);
        
$db null;
        echo 
'{"data": ' json_encode($productos) . '}';
    } catch(
PDOException $e) {
        echo 
'{"error":{"text":'$e->getMessage() .'}}';
    } 
Si ejecuto la consulta directamente en el gestor de base de datos HeidiSQL funciona perfectamente. El problema viene cuando pongo la consulta en el php. Si no le pongo LIMIT a la consulta no me trae nada, y si le pongo LIMIT 150 si, la tabla tiene 1410 registros. Pero yo quiero que me traiga todos.

Cual es el problema? Alguna idea?

Gracias!
__________________
Frontend Developer
JS+HTML5+CSS3
Backend Developer
PHP+MySQL
  #2 (permalink)  
Antiguo 10/05/2015, 14:10
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: Consulta con php pdo

Lo que dices no tiene sentido.
Si no pones LIMIT te debe devolver todo. Si no devuelve nada el fallo no es en SQL.
__________________
¿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 10/05/2015, 14:13
Avatar de carscx  
Fecha de Ingreso: noviembre-2008
Mensajes: 227
Antigüedad: 15 años, 5 meses
Puntos: 10
Respuesta: Consulta con php pdo

Por eso digo que el problema lo debo tener en PHP, si hago la consulta sin poner LIMIT en HeidiSQL me devuelve todos los registros sin errores.

Pero si pongo esa misma consulta en el codigo php, es cuando no me devuelve nada. Pruebo el servicio con la extension de Chrome POSTMAN y me devuelve {"data:"}

Como si estuviera vacio, no se como debuggear el codigo para obtener mas informacion.
__________________
Frontend Developer
JS+HTML5+CSS3
Backend Developer
PHP+MySQL
  #4 (permalink)  
Antiguo 10/05/2015, 14:35
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: Consulta con php pdo

Es que sigue sin tener sentido...
PHP sólo puede manipular lo que obtiene en la base, y lo que dices es esto:
Cita:
Si no le pongo LIMIT a la consulta no me trae nada,
Vale decir, si PHP no recibe nada es porque la consulta no devuelve nada, pero eso no puede ser, porque eliminar el LIMIT no genera tales efectos.
Código PHP:
Ver original
  1. $sql = "SELECT p.id_producto, p.nombre_producto, p.pcosto_producto, p.precio_producto,
  2.    p.id_marca, p.id_proveedor, p.cantidad_producto, p.observaciones_producto,
  3.    p.fecha_alta_producto, m.id_marca, m.nombre_marca, prov.id_proveedor,
  4.    prov.nombre_proveedor  
  5. FROM productos p, marcas m, proveedores prov
  6. WHERE p.id_marca=m.id_marca AND p.id_proveedor=prov.id_proveedor ORDER BY p.nombre_producto";
Prueba bien de nuevo y verifica si devuelve registros, porque no estás validando nada.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 10/05/2015, 14:48
Avatar de carscx  
Fecha de Ingreso: noviembre-2008
Mensajes: 227
Antigüedad: 15 años, 5 meses
Puntos: 10
Respuesta: Consulta con php pdo

Mil perdones, tenia un registro con un º y en el numero 161 rompia todo. Ya lo solucione.

Saludos,
__________________
Frontend Developer
JS+HTML5+CSS3
Backend Developer
PHP+MySQL

Etiquetas: pdo, registro, select, sql, tabla
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 23:59.