Foros del Web » Programando para Internet » PHP »

Ayuda con paginacion por favor!!

Estas en el tema de Ayuda con paginacion por favor!! en el foro de PHP en Foros del Web. hola, tengo este codigo y tengo un minisculo error que no puedo detectarlo! alguien puede darme una mano? gracias es para paginar los resultados de ...
  #1 (permalink)  
Antiguo 01/09/2008, 13:55
Avatar de hackteam  
Fecha de Ingreso: diciembre-2007
Mensajes: 67
Antigüedad: 16 años, 3 meses
Puntos: 0
Ayuda con paginacion por favor!!

hola, tengo este codigo y tengo un minisculo error que no puedo detectarlo! alguien puede darme una mano? gracias es para paginar los resultados de una consulta a una base de datos

Código PHP:
<?php
$Category 
$_GET['Category'];
$SEO_Title "$Category wallpapers";
$SEO_Description "Download the best $Category wallpapers FREE. We provide 800x600 and 1280x1024 sized images.";
$SEO_Keywords "wallpaper, wallpapers, naruto, free, ".$Category;
$SEO_H1 "Free $Category wallpapers.";

if (!isset(
$_GET['page'])) {
    
$image_path="../..";
    
$page_isset="";
} else {
    
$image_path ="../../..";
    
$page_isset="../";
}

include_once(
"skin.php");
echo 
$header;
echo 
"<h2>$Category wallpapers</h2>";

/*
    START THE PAGINATION FEATURE
    Available since version 1.2
*/

echo '
<style type="text/css">
.pagelink
{
    background: #E7EDF9;
    border: 1px solid #032390;
    padding: 0px 2px 0px 2px;
}
.tpagelink
{
    background: #FFC9A5;
    border: 1px solid #032390;
    padding: 0px 2px 0px 2px;
}
</style>
'
;

$page=$_GET['page'];
$limit=$Settings['Cat_Navigation_Count'];
if (
$page==NULL) {
    
$page=1;
}
$max_show=10;

$limitvalue $page $limit - ($limit);

$cCategory str_replace("+"" "$Category);
$cQuery "SELECT * FROM `Categories` WHERE `name`='$cCategory' LIMIT 1";
$cResult mysql_query($cQuery) or die(mysql_error());

if (
mysql_num_rows($cResult) <= 0)
{
    
$display_pagination=0;
} else
{
    
$query_count    "SELECT * FROM `Wallpapers` WHERE (`Category` = (SELECT `id` FROM `Categories` WHERE `name`='$cCategory') OR `Category` IN (SELECT `id` FROM `Categories` WHERE `Parent` = (SELECT `id` FROM `Categories` WHERE `name`='$cCategory'))) AND `approved` = '0' ORDER BY `ID` DESC";
    
$result_count   mysql_query($query_count);    
    
$totalrows      mysql_num_rows($result_count);
    if (
$totalrows==0) { $display_pagination 0; } else { $display_pagination 1; }
}

$numofpages = ($totalrows $limit); 

if (
$numofpages==1) { $display_pagination=0; }

if (
$page 3) {
    
$start=$page-2;
    
$end=$page+2;
    if (
$page==$numofpages) {
        
$end=$page;
        
$start=$start-2;
    } elseif (
$page+1==$numofpages) {
        
$end=$page+1;
        
$start=$start-1;
    }
} else {
    
$start=1;
    
$end=5;
}

if (
$page>=4) {
    
$apagenav='<span class="pagelink"><a href="'.$page_isset.'1/">«</a></span> ';
} else {
    
$apagenav='<span class="pagelink">«</span> ';
}

if (
$page $numofpages) {
    
$aend=' <span class="pagelink"><a href="'.$page_isset.$numofpages.'/">»</a></span>';
} else {
    
$aend=' <span class="pagelink">»</span>';
}


    for(
$i $start$i <= $end$i++){
        if(
$i == $page){
            
$apagenav .= '<span class="tpagelink">'.$i."</span> ";
        }else{
            
$apagenav .= '<span class="pagelink"><a href="'.$page_isset.''.$i.'/">'.$i.'</a></span> ';
        }
    }
    
$apagenav.=$aend;

    if (
$display_pagination==0) {
        
$apagenav=NULL;
    }

/*
    END THE PAGINATION FEATURE
    Available since version 1.2
*/

if ($image_path == "")
{
    
$image_path=$_SERVER['REQUEST_URI'];
}

if (
substr($image_path,strlen($image_path)-1,1) != "/")
    
$image_path=$image_path."/";

//Category wallpapers.
#get the category ID
if (mysql_num_rows($cResult) <= 0)
{
    echo 
"There are currently no wallpapers in this category.<br /><br />";
} else
{
    
$Row mysql_fetch_object($cResult);
    
$id $Row->id;

    
$query="SELECT * FROM `Wallpapers` WHERE (`Category` = '".$id."' OR `Category` IN (SELECT `id` FROM `Categories` WHERE `Parent` = '".$id."') AND `approved` = '0') AND `approved`='0' ORDER BY `ID` DESC LIMIT $limitvalue, $limit";
    
$result mysql_query($query);
    
$x 0;
    if (
mysql_num_rows($result) == 0)
    {
        echo 
"There are currently no wallpapers in this category.<br /><br />";
    } else
    {
        while (
$row mysql_fetch_assoc($result)) {
            
$x += 1;
            echo 
"\n".'<div class="Box Left">'."\n\t";
                echo 
'<div style="font-size: 1em; margin-bottom: 5px;"><a href="'.$image_path.'wallpaper/'.str_replace(" ""-"$row['Title']).'/">'.$row['Title']."</a></div>";
                echo 
'<a href="'.$image_path.'wallpaper/'.str_replace(" ""-"$row['Title']).'/"><img class="Thumbnail" src="'.$image_path.'images/wallpapers/'.$row['Thumbnail'].'" alt="'.$row['Name'].'" /></a>';
                echo 
'<div class="Clear"></div>'."\n";
            echo 
'</div>';
            if (!
is_int($x/3)){
                echo 
'<div class="Spacer">&nbsp;</div>';
            }
        }
    }
}

echo 
'<div class="Clear"></div>';
echo 
'<div><center>'.$apagenav.'</center></div>';

echo 
$footer;
?>
El error que me tira el servidor es este

Código:
Warning: Division by zero in /home/descarga/public_html/categories.php on line 66

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/descarga/public_html/categories.php on line 137
There are currently no wallpapers in this category.
no entiendo que esta mal, lo reviso y reviso y nos :( alguna ayuda por favor
  #2 (permalink)  
Antiguo 01/09/2008, 14:02
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: Ayuda con paginacion por favor!!

men el primer error es porq estas haciendo una division por cero (0) es lo primero que me enseñaron, no se puede dividir por 0.
el segundo error es un error de la consulta con mysql. puedes mandar la linea que sale el error que es la 137. ahi te explico mejor.
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #3 (permalink)  
Antiguo 01/09/2008, 14:11
Avatar de hackteam  
Fecha de Ingreso: diciembre-2007
Mensajes: 67
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Ayuda con paginacion por favor!!

ola men, ya lo se, pero no lo codee yo! ese es el drama jejeje ademas no entiendo mucho de php, estas son las lineas
Linea 66
Código PHP:
$numofpages ceil($totalrows $limit); 
Linea 137
Código PHP:
    if (mysql_num_rows($result) <= 0
  #4 (permalink)  
Antiguo 01/09/2008, 14:14
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: Ayuda con paginacion por favor!!

Cita:
Iniciado por hackteam Ver Mensaje
Código PHP:
$numofpages ceil($totalrows $limit); 
Linea 137
Código PHP:
    if (mysql_num_rows($result) <= 0
el primero es por q tal ves la variable $limit o $totalrows no se le han asignado ningun valor o se les ha asignado 0 como valor. asi q corrige eso.
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #5 (permalink)  
Antiguo 01/09/2008, 14:19
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: Ayuda con paginacion por favor!!

Cita:
Iniciado por hackteam Ver Mensaje
ola men, ya lo se, pero no lo codee yo! ese es el drama jejeje ademas no entiendo mucho de php, estas son las lineas
Linea 66
Código PHP:
$numofpages ceil($totalrows $limit); 
Linea 137
Código PHP:
    if (mysql_num_rows($result) <= 0
el segundo error trata de sacar el numero de filas en una variable y la comparas en un if, pero primero mostrala con echo a ver que te sale. a ver si te sale algun numero o algo asi.
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
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 11:22.