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 > 0 && $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;
}
?>