Categories > TinyButStrong general >

A way to display page by page, larges queryes.

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: Martin Clasen
Date: 2004-08-20
Time: 10:10

A way to display page by page, larges queryes.

A way to display page by page, larges queryes.

include_once('tbs_class.php') ;

/**
* mmmd
*
* Tipo:        función de consulta (MySql)
* Nombre:        tabla_cant
* Función:        cuenta la cantidad de resultados de la consulta
* @consulta    string representa la consulta a ejecutar (SELECT)
* @return        false (0) si no existen resultados.
                int cantidad de resultados
*/
function tabla_cant($consulta)
{
    if ( eregi("from(.*)limit", $consulta, $regs ) ) {
        $sql_cantidad = "SELECT count(*) AS cantidad FROM" . $regs[1] ;
        if(!$res=mysql_query($sql_cantidad)) return 0 ;
        if (mysql_num_rows($res) == 0) return 0 ;
        $tabla = mysql_fetch_assoc($res) ;
        return $tabla["cantidad"] ;
    }
    else
        return 0;
}

//Default value
if (!isset($_GET)) $_GET=&$HTTP_GET_VARS ;
if (isset($_GET['PageNum'])) {
  $PageNum = $_GET['PageNum'] ;
} else {
    $PageNum = 1 ;
}


$PageSize = 2 ;

$inicio=($PageNum-1)*$PageSize;

$TBS = new clsTinyButStrong ;
$TBS->LoadTemplate('tbs_us_examples_datamysql.htm') ;

//Merge the block by page
require($_SERVER['DOCUMENT_ROOT'].'/cnx_mysql.php');
$sql="SELECT * FROM t_tbs_exemples LIMIT $inicio,$PageSize";
$sql_cant=tabla_cant($sql);

$TBS->MergeBlock('blk1',$cnx_id,$sql,$PageSize,1,$sql_cant) ;
$TBS->MergeNavigationBar('nv',array('size'=>10,'pos'=>'centred'),$PageNum,$sql_cant,$PageSize) ;
mysql_close($cnx_id) ;
$TBS->Show() ;

my web page: http://unisistemas.com.ar/sites/mmmd
By: Skrol29
Date: 2004-08-20
Time: 16:47

Re: A way to display page by page, larges queryes.

That's a good trick. Thanks for having posted it.