Foros del Web » Programando para Internet » PHP »

paginado disfuncional

Estas en el tema de paginado disfuncional en el foro de PHP en Foros del Web. libreria.php Código PHP: <?php           function  paginado ( $consulta_pag ) {  ?>     <form name="form2" method="get" action="">          <?        if (!isset( $pg ))  $pg  =  0 ;  // $pg es la pagina actual  $cantidad = ...
  #1 (permalink)  
Antiguo 06/05/2004, 13:47
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 16 años, 4 meses
Puntos: 9
paginado disfuncional

libreria.php
Código PHP:
<?php
         
function paginado($consulta_pag) { ?>
    <form name="form2" method="get" action="">
        <?
      
if (!isset($pg)) 
$pg 0// $pg es la pagina actual 
$cantidad=5// cantidad de resultados por página 
$inicial $pg $cantidad

echo 
$pegar $consulta_pag." LIMIT $inicial,$cantidad"

$cad mysql_query($pegar) or die (mysql_error()); 

$consulta $consulta_pag;

$contarok mysql_query($consulta);

$total_records=mysql_num_rows($contarok); 
$pages intval($total_records $cantidad); ?>
        <div align="center">
          <select name="menu1" onChange="MM_jumpMenu('parent',this,0)">
            <?      
if ($pg <> 0

$url $pg 1
?>
            <option value="?pg=<? echo $url?>">Anterior</option>
            <? 

else { 
?>
            <? 


for (
$i 0$i<($pages 1); $i++) { 
if (
$i == $pg) { ?>
            <option selected><? echo $i?></option>
            <? 

else { 
?>
            <option value="?pg=<? echo $i?>"><? echo $i?></option>
            <? 



if (
$pg $pages) { 
$url $pg 1
?>
            <option value="?pg=<? echo $url?>">Siguiente</option>
            <? 

else { 
?>
            <? 

?>
          </select>
        </div>
      </form>    
<? 
function 
paginado_listo() {
    
mysql_fetch_array($cad); }
El problema viene aquí:
pagina_tal.php
Código PHP:
include("libreria.php");
paginado("SELECT * FROM tabla ORDER BY id DESC");
while(
$guest=paginado_listo()) { ... } 
Al parecesl la variable $cad no migra a la segunda función para realizar bien el paginado, que será?

Última edición por lado2mx; 06/05/2004 a las 13:49
  #2 (permalink)  
Antiguo 06/05/2004, 13:56
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Ambito de variables: una variable definida dentro de una funcion solo es accesible desde dentro de esa funcion. Ver http://www.php.net/manual/en/languag...bles.scope.php

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 07/05/2004, 20:15
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 16 años, 4 meses
Puntos: 9
ok, creo que lo que necesito, para ese aspecto, es una función como global, lo estuve usando dentro de paginado_listo(), y nada. Quisiera que me ayuden, gracias

Última edición por lado2mx; 07/05/2004 a las 20:19
  #4 (permalink)  
Antiguo 08/05/2004, 10:43
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Bueno, una opcion es olvidarte de funciones y mirar las clases, que te permite el encpsulamiento de variables y funciones en un mismo contexto.

Porque personalmente no me gusta el uso de variables globales (me enseñaron que son una fuente de posibles problemas). La otra opcion es estar pasando las variables de una funcion a otra:
Código PHP:
function paginado($consulta_pag) {
...
return 
$cad;
}

function 
paginado_listo($cad) {

    
mysql_fetch_array($cad);
}

$result=paginado("SELECT * FROM tabla ORDER BY id DESC");

while(
$guest=paginado_listo($result)) { ... } 
Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 09/05/2004, 15:08
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 16 años, 4 meses
Puntos: 9
CORRECTO!: Para el registro

Gracias Josemi, ahora para los que quieran bien el código, ahí les vá:

funciones.php
Código PHP:
<? function paginado($consulta_pag) { ?>
    <form name="form2" method="get" action="">
        <? $pg=$_GET['pg'];
      if (!isset(
$pg)) 
$pg 0// $pg es la pagina actual 
$cantidad=5// cantidad de resultados por página 
$inicial $pg $cantidad

$pegar $consulta_pag." LIMIT $inicial,$cantidad"

$cad mysql_query($pegar) or die (mysql_error()); 
$consulta $consulta_pag;

$contarok mysql_query($consulta);

$total_records=mysql_num_rows($contarok); 
$pages intval($total_records $cantidad); ?>
        <div align="center">
          <select name="menu1">
            <?      
if ($pg <> 0

$url $pg 1
?>
            <option value="?pg=<? echo $url?>">Anterior</option>
            <? 

else { 
?>
            <? 


for (
$i 0$i<($pages 1); $i++) { 
if (
$i == $pg) { ?>
            <option selected><? echo $i?></option>
            <? 

else { 
?>
            <option value="?pg=<? echo $i?>"><? echo $i?></option>
            <? 



if (
$pg $pages) { 
$url $pg 1
?>
            <option value="?pg=<? echo $url?>">Siguiente</option>
            <? 

else { 
?>
            <? 

?>
          </select><input type="submit" name="Submit" value="Ver">
        </div>
      </form>    
<? 
return $cad
}    
function 
paginado_listo($cad) {
    

    
    return 
mysql_fetch_array($cad); }

Para luego ponerlo acá:

Código PHP:
<?
include("funciones.php");
$result=paginado("SELECT * FROM tabla ORDER BY id DESC");

while(
$guest=paginado_listo($result)) { ... } ?>
Ahí está, con esto funcionará perfectamente. Gracias Josemi!

Última edición por lado2mx; 09/05/2004 a las 15:10
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 06:43.