Foros del Web » Programando para Internet » PHP »

Mostrar datos de una tabla mysql con pdo

Estas en el tema de Mostrar datos de una tabla mysql con pdo en el foro de PHP en Foros del Web. Buenas, tengo una duda con el foreach().. Parte del codigo clase.php Código PHP:      function  lista ( $fields ,  $table ){          $query =  " ...
  #1 (permalink)  
Antiguo 06/06/2018, 08:17
 
Fecha de Ingreso: abril-2016
Ubicación: Cordoba
Mensajes: 22
Antigüedad: 8 años
Puntos: 1
Mostrar datos de una tabla mysql con pdo

Buenas, tengo una duda con el foreach()..


Parte del codigo clase.php
Código PHP:
    function lista($fields$table){
        
$query"
            SELECT
                $fields
            FROM
                $table
        "
;
        
        
$consulta $this->conexion->query($query);
        
$consulta $consulta->fetchAll();

        
$rows explode(","$fields);
        
#print_r($rows);
        
$num_rows count($rows);

        
$impresion "<tbody>";
        foreach (
$consulta as $cons => $value) {
            echo 
"$impresion";
            
$impresion .= "<tr>";
            for(
$i 0$i 1$i++){
                
$impresion .= "<td>".utf8_encode($cons[$rows[$i]])."</td>";
            }
            
$impresion .= "</tr>";
        }
        
$impresion .= "</tbody>"
Código PHP:
function conexion()
    {
        try{
#$this->conexion = new PDO($this->datos, $this->usuario, $this->password);
#no me funciona cuando hago la llamada desde otro .php
#    $db = new baseDeDatos("mysql:dbname=corralon;host=localhost","root","root123");
#$db->conexion();
#pero si lo pongo como esta aca

            
$this->conexion = new PDO("mysql:dbname=corralon;host=localhost","root","root123");
            
        }catch(
PDOException $e){
            echo 
"Problemas Tecnicos: ".$e->getMessage();
        }
    } 

Aca se llama la funcion
Código PHP:
<?php 
    
require_once("../datos/clase.php");

    
$listado = new baseDeDatos("mysql:dbname=corralon;host=localhost","root","root123");
    
$listado->conexion();

    
$columnas="idArt,nameArt,descArt,rubroId,subrubroId,precioEntradaArt,precioSalidaArt,unidadVentaArt,proveedorId";
 
?>

<?php $listado->lista($columnas"articulo"); ?>
No me muestra la lista en la pagina. No me da error de ninguna clase, pero no me lo muestra!
  #2 (permalink)  
Antiguo 06/06/2018, 09:29
 
Fecha de Ingreso: julio-2008
Mensajes: 253
Antigüedad: 15 años, 8 meses
Puntos: 11
Respuesta: Mostrar datos de una tabla mysql con pdo

Hola, te recomiendo que depures en distintas secciones: se conecta ? genera la sentencia SQL correctamente ?

Si todo está bien, el siguiente paso es verificar las tablas en la BD.

Puedes copiar la sentencia SQL que genera el script y ejecutarla en la BD directamente para ver el resultado.

SuerT!
__________________
Neothek.com | Web hosting, registro de dominios, Diseño Web y Certificados SSL
  #3 (permalink)  
Antiguo 06/06/2018, 12:42
 
Fecha de Ingreso: abril-2016
Ubicación: Cordoba
Mensajes: 22
Antigüedad: 8 años
Puntos: 1
Respuesta: Mostrar datos de una tabla mysql con pdo

frankm.. Gracias por responder a mi consulta..

Se conecta bien a la BD..

No encuentro el problema..

Código MySQL:
Ver original
  1. create table articulo(
  2. nameArt varchar(50) not null,
  3. descArt text not null,
  4. rubroId int not null,
  5. subrubroId int not null,
  6. precioEntradaArt int not null,                 
  7. precioSalidaArt int not null,
  8. unidadVentaArt varchar(30) not null,       
  9. proveedorId int not null,
  10. foreign key (proveedorId) references proveedor(idProv),
  11. foreign key (rubroId) references rubro(idRubro)
  12. foreign key (subrubroId) references subrubro(idSubRub),
  13. );

Código en respuesta a:
Ver original
  1. Puedes copiar la sentencia SQL que genera el script y ejecutarla en la BD directamente para ver el resultado.

La genera y funciona bien..
  #4 (permalink)  
Antiguo 06/06/2018, 13:59
 
Fecha de Ingreso: abril-2016
Ubicación: Cordoba
Mensajes: 22
Antigüedad: 8 años
Puntos: 1
Respuesta: Mostrar datos de una tabla mysql con pdo

Tenia errores torpes..

Código PHP:
    function lista($fields$table){
        
$query"
            SELECT
                $fields
            FROM
                $table
        "
;
        
$consulta $this->conexion->query($query);
        
        
$consulta $consulta->fetchAll();
        

        
$rows explode(","$fields);
        
#print_r($rows);
        
$num_rows count($rows);

        
$impresion "<tbody>";

#ACA TENIA UN ERROR.. le agregue un

        
foreach ($consulta as $cons) {
            
$impresion .= "<tr>";
            for(
$i 0$i $num_rows$i++){
                
$impresion .= "<td>".utf8_encode($cons[$rows[$i]])."</td>";
            }
            
$impresion .= "</tr>";
        }
        
$impresion .= "</tbody>";

        try{
            echo 
$impresion;
        }catch(
PDOException $e){
            
print_r($e);
        }
    } 
Muestra todo, ahora el problema es que no me muestra bien la tabla..
Me lo muestra como un string solo..
No me toma los <td>..

Código HTML:
Ver original
  1. <div class="table table-condensed table-striped table-bordered table-hover">
  2.                         <thead>
  3.                             <tr>
  4.                                 <th>CODIGO</th>
  5.                                 <th>NOMBRE</th>
  6.                                 <th>DESC</th>
  7.                                 <th>RUBRO</th>
  8.                                 <th>SUBRUBRO</th>
  9.                                 <th>PRECIO</th>
  10.                                 <th>VENTA</th>
  11.                                 <th>UNIDAD</th>
  12.                                 <th>PROV</th>
  13.                             </tr>
  14.                         </thead>
  15.                         <?php $listado->lista($columnas, "articulo"); ?>
  #5 (permalink)  
Antiguo 06/06/2018, 14:16
 
Fecha de Ingreso: abril-2016
Ubicación: Cordoba
Mensajes: 22
Antigüedad: 8 años
Puntos: 1
Respuesta: Mostrar datos de una tabla mysql con pdo

El error es en el codigo de html..

Puse div, en vez de table..

Solucionado..

Gracias y disculpen el error..
Código HTML:
Ver original
  1. <table class="table table-condensed table-striped table-bordered table-hover">
  2.                         <thead>
  3.                             <tr>
  4.                                 <th>CODIGO</th>
  5.                                 <th>NOMBRE</th>
  6.                                 <th>DESC</th>
  7.                                 <th>RUBRO</th>
  8.                                 <th>SUBRUBRO</th>
  9.                                 <th>PRECIO</th>
  10.                                 <th>VENTA</th>
  11.                                 <th>UNIDAD</th>
  12.                                 <th>PROV</th>
  13.                             </tr>
  14.                         </thead>
  15.                         <?php $listado->lista($columnas, "articulo"); ?>
  16.                 </table>

Etiquetas: funcion, mysql, pdo, query, select, 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:18.