Login   Register  
PHP Classes
elePHPant
Icontem

File: testpager.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of markitos  >  dbsearch  >  testpager.php  >  Download  
File: testpager.php
Role: ???
Content type: text/plain
Description: Class test file/Archivo con el test de la clase. How to pager the results/Como paginar el resultado
Class: dbsearch
Author: By
Last change:
Date: 2001-05-31 03:39
Size: 8,801 bytes
 

Contents

Class file image Download
<?

#: unset internal vars
#: if (isset ()){unset ();}
if (isset ($ERROR)){unset ($ERROR);}
if (isset ($NumPaginas)){unset ($NumPaginas);}
if (isset ($Tdbsearch)){unset ($Tdbsearch);}
if (isset ($MuestraPorPagina)){unset ($MuestraPorPagina);}
if (isset ($NumEncontrados)){unset ($NumEncontrados);}
if (isset ($ENCONTRADO)){unset ($ENCONTRADO);}
if (isset ($Paginas)){unset ($Paginas);}
if (isset ($PaginaActual)){unset ($PaginaActual);}

#: include class file.
include ('dbsearchclass.php');

#: definimos variables para la clase
#: Default values for database hostname and server port are: localhost ans 3306
$DatabaseName     = 'dbsearchtest';
$DatabaseUser     = 'dbsearchuser';
$DatabasePass     = 'dbsearchuserpass';
$DatabaseHost     = 'localhost';
$DatabasePort     = 3306;
$Pattern          = 'ma';
$NoBuscarEnTablas = array ('');

#: definimos tabla de errores con sus codigos
$CODEERROR = array (
    "1"    => 'ERROR ESTABLECIENDO CONEXION',
    "2"    => 'ERROR FIJANDO PATRON'
);

#: definimos variables para el paginado
$MuestraPorPagina  = 5;

#: instanciamos objeto, establecemos conexion y fijamos el patron de busqueda
$Tdbsearch = new dbsearch ($DatabaseName,$DatabaseUser,$DatabasePass,$DatabaseHost,$DatabasePort);
if(!$Tdbsearch->OpenConnection()){$ERROR=1;}
if(!isset ($ERROR)){if(!$Tdbsearch->SetPattern ($Pattern)){$ERROR=2;}}

#: Realizamos busqueda sin excluyendo la tabla 'nosearch' si antes no ha ocurrido un error.
#: Buscamos cualquier ocurrencia con el patron sin respetar mayusculas/minusculas
if(!isset ($ERROR)){$Tdbsearch->FindInDb (0,0,$NoBuscarEnTablas);}

#: Si no han habido errores recogemos el numero de registros enconrados.
if(!isset ($ERROR)){$NumEncontrados = $Tdbsearch->NumResult();}

#: Si no han habido errores y por lo menos hay un registro preparamos paginado
if((!isset ($ERROR))&&($NumEncontrados>=1)){

    #: Fijamos el valor de ENCONTRADO a 1
    $ENCONTRADO = 1;
    
    #: Recogemos Los Ids de los registros encontrados junto con el nombre de su tabla
    $IdsEncontrados = $Tdbsearch->IdFindPerTable('');
    
    #: Preparamos matriz con los ids y el nombre de la tabla a la que pertenece
    $ListaTablaId = array();
    while (list ($NombreTabla, $ArrayIds) = each ($IdsEncontrados)){
        while (list ($null,$IdDelRegistro) = each ($ArrayIds)){
            array_push ($ListaTablaId, array($NombreTabla,$IdDelRegistro));
        }
    
    }
    
    #: Calculamos Numero de paginas.
    $NumPaginas = ceil ($NumEncontrados/$MuestraPorPagina);
        
    #: Si $inicio no existe o se da el caso en el que se ha modificado su valor a mano:
    #:  - Es mayor que lo que mandaria la ultima pagina.
    #:  - Es menor de 1.
    #:  - No es un numero.
    #: , fijamos su valor en 1, que seria como estar en la pagina 1.
    if (
    (!isset ($inicio))||
    ($inicio>($NumEncontrados-1))||
    ($inicio<1)||
    (!eregi ("^[0-9]{1,}$",$inicio))
    ){ 
        $inicio = 0;
    }
    
    #: una vez fijado $inicio, calculamos en que pagina nos encontramos
    $Paginas = array();
    for ($c=0;$c!=$NumPaginas;$c++){        
        $Desde=$c*$MuestraPorPagina;
        $Hasta=$Desde+$MuestraPorPagina-1;
        if ($Hasta>$NumEncontrados){$Hasta=$NumEncontrados-1;}
        if ($Hasta==$Desde){$Tiene=1;}
        if ($Hasta==$NumEncontrados){$Hasta=$Hasta-1;}
        $Paginas{$c+1}=$Hasta;                
    }
    while (list ($Pagina,$Hasta) = each ($Paginas)){
        if ($inicio<=$Hasta){ $PaginaActual=$Pagina;break;}        
    }
    reset ($Paginas);    
    $Desde = ($Paginas{$PaginaActual-1})+1;
    if ($Desde==1){$Desde=0;}
}
?>



<html>
<head>
<title>Test de como paginar el resultado</title>
</head>
    
<body>

<table align="center" border="0" width="600" cellpadding="0" cellspacing="0">

<tr bgcolor="9999CC">
<td colspan="2"><b>Como paginar los resultados</b></td>
<td align="right"><b>oO0oOo xp coding style oO0oOo |[[ mArKitos 2oo1 ]]|</b></td>
</tr>

<tr><td bgcolor="#CCCCCC" colspan="3">&nbsp;</td></tr>

<tr bgcolor="#CCCCCC">
<td bgcolor="#CCCCFF"><b>Database Name</b></td>
<td>&nbsp;</td>
<td bgcolor="#CCCCFF"><b><?echo $DatabaseName?></b></td>
</tr>
<tr bgcolor="#CCCCCC">
<td bgcolor="#CCCCFF"><b>Database Username</b></td>
<td>&nbsp;</td>
<td bgcolor="#CCCCFF"><b><?echo $DatabaseUser?></b></td>
</tr>
<tr bgcolor="#CCCCCC">
<td bgcolor="#CCCCFF"><b>Database Password</b></td>
<td>&nbsp;</td>
<td bgcolor="#CCCCFF"><b><?echo $DatabasePass?></b></td>
</tr>
<tr bgcolor="#CCCCCC">
<td bgcolor="#CCCCFF"><b>Database Hostname</b></td>
<td>&nbsp;</td>
<td bgcolor="#CCCCFF"><b><?echo $DatabaseHost?></b></td>
</tr>
<tr bgcolor="#CCCCCC">
<td bgcolor="#CCCCFF"><b>Database Server Port</b></td>
<td>&nbsp;</td>
<td bgcolor="#CCCCFF"><b><?echo $DatabasePort?></b></td>
</tr>

<tr><td bgcolor="#CCCCCC" colspan="3">&nbsp;</td></tr>

<tr bgcolor="#CCCCCC">
<td bgcolor="#CCCCFF"><b>Initial Pattern</b></td>
<td>&nbsp;</td>
<td bgcolor="#CCCCFF"><b><?echo $Pattern?></b></td>
</tr>

<tr><td bgcolor="#CCCCCC" colspan="3">&nbsp;</td></tr>

<tr><td bgcolor="#9999CC" colspan="3">&nbsp;</td></tr>

<?

if (isset ($ERROR)){?>
    <tr><td bgcolor="#CCCCCC" colspan="3">&nbsp;</td></tr>
    <tr><td bgcolor="#9999CC" colspan="3"><?echo $CODEERROR{$ERROR}?></td></tr>
<?}?>

</table>

<br><br>



<table align="center" border="0" width="600" cellpadding="0" cellspacing="0">

<tr bgcolor="9999CC">
<td colspan="2"><b>TOTAL ENCONTRADOS:</b></td>
<td align="right"><b><?echo $NumEncontrados;?></b></td>
</tr>
<tr><td bgcolor="#CCCCCC" colspan="3">&nbsp;</td></tr>
</table>



<?
#: Mostramos Resultado de la pagina deseada.
#: Los datos se hallan en la matriz $ListaTablaId
#: Mostramos del elemento $Desde hasta el $Paginas{$PaginaActual}
if ($ENCONTRADO){

    $TotalAMostrar = $Paginas{$PaginaActual}-$Paginas{$PaginaActual-1};

    if ($NumPaginas==1){$TotalAMostrar=$NumEncontrados;}

    for ($Contador=$Desde;$Contador<=$Paginas{$PaginaActual};$Contador++){
        list ($PerteneceA, $ID) = $ListaTablaId[$Contador];
        ?>
    
        <table align="center" border="0" width="600" cellpadding="0" cellspacing="0">
        <tr bgcolor="9999CC">
        <td colspan="2"><b>seccion <?echo $PerteneceA?></b></td>
        <td align="right"><b><?echo $ID;?></b></td>
        </tr>
        </table>
    
        <?
    }    
}
?>






<!-- Mostramos paginador si hay mas de 1 pagina !-->
<?

if ($NumPaginas==1){?>
    <table align="center" border="0" width="600" cellpadding="0" cellspacing="0">    
    <tr><td bgcolor="#CCCCCC" colspan="3">&nbsp;</td></tr>
    <tr bgcolor="#9999CC">
    <td colspan="3"><b>PAGINA 1</b></td>
    </tr>
    </table>
<?} else if ($NumPaginas>1){?>

    <table align="center" border="0" width="600" cellpadding="0" cellspacing="0">    
    <tr><td bgcolor="#CCCCCC" colspan="3">&nbsp;</td></tr>
    <tr bgcolor="#9999CC">
    <td colspan="2"><b>PAGINA <?echo $PaginaActual." de ".$NumPaginas;?></b></td>
    <td align="right"><b>        
    <?
    #: Mostramos paginas        
    for ($Contador = 1; $Contador<=$NumPaginas; $Contador++){
    
        #: Fijamos el valor de inicio. Si la pagina es 1 su valor es 1. 
        #: Si es mayor de 1 sera ($Contador-1) * $MuestraPorPagina.
        $ValorInicio = 0;
        if ($Contador>1){ $ValorInicio = ($Contador-1)* $MuestraPorPagina; }
        if ($Contador==$PaginaActual){ ?><font color="red"><b><?echo $Contador?></b></font><?; continue;}
        ?><a href="<?echo $PHP_SELF?>?inicio=<?echo $ValorInicio?>" style="text-decoration:none"><?echo " ".$Contador." ";?></a><?

    }
    ?>            
    </b></td></tr>
    
    <tr bgcolor="#9999CC">
    <td colspan="3" align="right"><b>        
    <?
    $ValorInicio=0;
    #: Mostramos flechas de avance o retroceso en las paginas
    #: Para mostrar la de retroceso ha de cumplirse:
    #:    - $PaginaActual > 1
    if ($PaginaActual>1){
        $ValorInicio = ($Paginas{$PaginaActual-1}-$MuestraPorPagina)+1;
        ?><a href="<?echo $PHP_SELF?>?inicio=<?echo $ValorInicio?>" style="text-decoration:none"><< anterior</a><?
    }
    #: Para mostrar la de avance ha de cumplirse:
    #:    - $PaginaActual < Total De Paginas
    $ValorInicio = $Paginas{$PaginaActual}+1;
    if ($PaginaActual<$NumPaginas){
        ?>&nbsp;&nbsp;<a href="<?echo $PHP_SELF?>?inicio=<?echo $ValorInicio?>" style="text-decoration:none">siguiente >></a><?
    }?>
    </td></tr>
    
    <tr><td bgcolor="#CCCCCC" colspan="3">&nbsp;</td></tr>
    </table>

<?} else {}?>
<!-- Fin del paginador!-->


</body>
</html>