Ver Mensaje Individual
  #5 (permalink)  
Antiguo 25/08/2011, 15:08
warbandit69
 
Fecha de Ingreso: diciembre-2008
Ubicación: http://www.solucionesrios.tk/
Mensajes: 413
Antigüedad: 15 años, 4 meses
Puntos: 19
De acuerdo Respuesta: Renderizado para construir tabla dinamica con adodb

Gracias GatorV demos este tema como finalizado igual comparto las funciones con la comunidad:

Código PHP:
<?php
//Me conecto a cualquier base de datos segun sea el caso
function conectarse()
{
         
$dbdriver "mysql";
         
$server "localhost"
         
$user "root"
         
$password "vladssj4";
         
$database "mytinytodo";
         
         include(
'clases/adodb/adodb.inc.php');
         
$db ADONewConnection($dbdriver); # eg 'mysql' or 'postgres'
         #$db->debug = true; //Solo para Debug
         
         //Depende de que tipo de base de datos use, me conecto segun un metodo (no estan todos)
         
switch ($dbdriver) {
            case 
"mysql":
                
$db->Connect($server$user$password$database);
                break;
            case 
"odbc_mssql":
                
$dsn "Driver={SQL Server};Server=".$server.";Database=".$database.";";
                
$db->Connect($dsn,$user,$password);
                break;
         }
              
         return 
$db;
}
//Ejecuto cualquier query de insercion o actualizacion
function Ejecutar_Query($query_a_ejecutar)
{
    
$db conectarse();
    
$db->Execute($query_a_ejecutar);
    
$db->Close();
}
//Construyo una tabla con paginacion desde una consulta
function Construye_Tabla(
$query_a_ejecutar//El query que deseo utilizar para generar el arreglo (lo genera a partir de la funcion  Consulta($query_a_ejecutar,$campos)
array $campos,  /* Un arreglo donde especifico los campos y los nombres de los titulos de las tablas*/
array $renders/* Un arreglo donde especifico de que forma desde que salgan los datos */
$columnas//El numero de columnas que deseo que salgan por pagina
$inicio// Aca siempre colocare $_GET['start'] par paginacion
$enlace//Coloco el mismo nombre del archivo php donde colocare la tabla
$estilo_tabla//Especifico el estilo que deseo que tenga la tabla (clase CSS)
$titulos // Especifico si deseo los titulos de la tabla, Ej: "Y" si quiero titlos, si no solo coloco ""
)
{
    
$db conectarse();

    
$arreglo Consulta($query_a_ejecutar,$campos);
    
$perpage $columnas
    
/* Tomo el querystring para realizar el paginado */
    
if(isset($inicio)) 
        
$start $inicio
    else 
        
$start 0;
    
/* Si se modifica esta parte el paginado no funcionaria */
    
$numposts count($arreglo);
    
$datos array_slice($arreglo$start$perpage);
    
/* ------------------------------------------------------ */
    
if ($estilo_tabla!=""
    {
        
$tabla "<table align='center' class='".$estilo_tabla."'>";
    } else {
        
$tabla "<table align='center' >";
    }
    
/* 
    Creditos a GatorV de foros del web por ayudar a mejorar la funcion con renderizado
    */
    
if ($titulos=="Y")
    {
        
$tabla .= "<tr>";
        foreach (
$campos as $campo => $titulo) {
            
$tabla .= "<th>".$titulo."</th>";        
        }
        
$tabla .= "</tr>";
    }

    foreach(
$datos as $index => $row)
        {
            
$tabla .= "<tr>";
            foreach (
$campos as $campo => $titulo) {
                if (isset(
$row[$campo])) {
                    if (isset(
$renders[$campo])) {
                        
$celda str_replace('%'.$campo.'%'$row[$campo], $renders[$campo]);
                    } else {
                        
$celda $row[$campo];
                    }
                   
                    
$tabla .= "<td>" $celda "</td>";
                }
            }
            
$tabla .= "</tr>";
        }
    
$tabla .= "</table><br />";
    
    
$text "<table align='center'><tr>";
    if(
$start 0)
    {
        
$text .= "<td><a href='".$enlace."?start=0'>
        <img src='imagenes/First.gif' /> 
        </a></td><td><a href='"
.$enlace."?start=".($start $perpage)."'>
        <img src='imagenes/Previous.gif' /> 
        </a></td>
        "
;
    }
    if(
$start && $numposts $perpage && $start $numposts $perpage)
    {
        
$text .= "";
    }
    if(
$numposts $perpage && $start $numposts $perpage)
    {
        
$total count($arreglo);
        
$paginas $total $columnas;
        
$p 0;
        
$q 0;
        for (
$n=0;$n<$paginas;$n++)
        {
            if (
$n<$paginas
            {
                
$p $n;    
            }
            for (
$o=0;$o<$columnas;$o++)
            {
                
                if ((
$p == $n) && ($o == 0))
                {
                    
$ultimo $q;    
                }
                
$q $q+1;
            }
        }
        
$text .= "<td><a href='".$enlace."?start=".($start $perpage)."'>
        <img src='imagenes/Next.gif' />
        </a></td><td><a href='"
.$enlace."?start=".$ultimo."'>
        <img src='imagenes/Last.gif' /> 
        </a></td>"
;
    }
    
$text .= "</tr></table>";
    
$tabla .= "<center>".$text."</center>";
    
    
    
$db->Close();
    return 
$tabla;
    
#return $arreglo;
}
//Ejecuta cualquier consulta y la transforma en un Array
function Consulta($query_a_ejecutar,array $camposX)
{
    
$conn conectarse();
    
$campoZ = array();
    
$q=0;
    foreach (
$camposX as $campo => $v) {
        
$campoZ[$q] = $campo;        
        
$q++;
    }
    
    if (
count($campoZ)>1) {
        
$camposY implode(",",$campoZ);
        
$campo explode(",",$camposY);
    } else {
        
$campo $campoZ[0];    
    }
  
    
$recordSet = &$conn->Execute($query_a_ejecutar);
    if (!
$recordSet
    {
         print 
$conn->ErrorMsg();
    } else {
        
$j 0;
        if (
count($camposX) > 1) {
            while (!
$recordSet->EOF) {
                 for (
$i=0;$i<(count($camposX));$i++) {
                     
$results[$j][$campoZ[$i]] = $recordSet->fields[$i];
                }
                 
$recordSet->MoveNext();
                 
$j $j+1;
             }              
        } else { 
            while (!
$recordSet->EOF) {
                
$results[0][$campo[0]] = $recordSet->fields[0];
            }
        }
    } 
    
    
$recordSet->Close(); # optional
    
$conn->Close(); # optional
    
    
return $results;
    
#return $campos;
}

?>
__________________
http://www.solucionesrios.tk/

Visita mi Web!