Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/09/2008, 11:39
marx-pola
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 24 años, 4 meses
Puntos: 1
Consulta sobre este error: Warning: Division by zero

Hola a todos! Estoy armando un buscador que trae los datos de mi base. Tengo un par de dudas y para colmo, me apareció un error que no lo había tenido nunca con este paginador que estoy usando desde hace rato. Me apareció esto: Warning: Division by zero in c:\XXX\search3.php on line 107
Este paginador lo usé muchisimas veces y nunca me apareció un error así.
Cuando el buscador trae 1 solo dato no aparece ningun error. Cuando muestra los primeros 8 datos en pantalla, tampoco aparece el error... pero sí aparececuando presiono el link de SIGUIENTE del paginador.
Lo que quisiera saber, si me pueden ayudar, es:

- como puedo solucionar este inconveniente para que el paginador funcione.
- en el caso que presione el boton de buscar y no existe ningun dato, donde agregarle alguna línea que me informe que "no se encontraron datos".

Les muestro el código:
Código PHP:
// if 1
if ($_POST['buscador'])
{
    
// Tomamos el valor ingresado
    
$buscar = $_POST['palabra'];


    
//if 2
    // Si está vacío, lo informamos, sino realizamos la búsqueda
    
if(empty($buscar))
        {
        echo 
"No se ha ingresado una cadena a buscar";
        }else{

    
include (
"con.php");

$CantxCol = 4; //Cantidad de columnas
$Cant = 0; // Variable para ser usada como contador

// conexion a la base
$conexion = mysql_connect($host_db, $usuario_db, $pass_db) or die ("no se ha podido conectar a la BD");
mysql_select_db($base_db, $conexion) or die ("no se ha podido seleccionar la BD");


// obtener datos de la base
$pag = $_GET['pag'];        

    
// if 3
    
if (!isset($pag)) $pag = 1; // Por defecto, pagina 1


// Ejecuto la consulta 
    
$sql = "SELECT COUNT(*) FROM restaurantes WHERE nombre LIKE '%$buscar%'";
$result = mysql_query($sql, $conexion);

        list(
$total) = mysql_fetch_row($result);
        
$tampag = 8;
        
$reg1 = ($pag-1) * $tampag;
        
$result = mysql_query("SELECT * FROM restaurantes WHERE nombre LIKE '%$buscar%' ORDER BY id_rubro LIMIT $reg1, $tampag", $conexion) or die(mysql_error());

        
// if 4
        
if (mysql_num_rows($result)){ 

        
// Muestro los registros
              
while ($fila = @mysql_fetch_array($result))
                  { 
                    
<
a href="micrositio.php?rubro=" echo $fila['rubro']; "&idrubro=" .echo $fila['id_rubro']; "><img src="echo $fila['foto'];" border="0" /></a>"
echo $fila['nombre']; 

 
$Cant = $Cant + 1;

                
// if 5
                  
if (($Cant % $CantxCol) == 0)
                  {    


                 } 
// fin 5
            
}  // fin 4

            //libero el recordset
            
mysql_free_result($result);
        } 
// fin 3
    
} // fin 2
} // fin 1
    
        // Cierro la conexion
//        mysql_close($conexion); 



/******************************************************/
/* Funcion paginar
 * actual:          Pagina actual
 * total:           Total de registros
 * por_pagina:      Registros por pagina
 * enlace:          Texto del enlace
 * Devuelve un texto que representa la paginacion
 */
function paginar($actual, $total, $por_pagina, $enlace) {
  
$pag = $_GET['pag'];
  

  
$total_paginas = ceil($total/$por_pagina);    // Error division zero line 107
  
$anterior = $actual - 1;
  
$posterior = $actual + 1;
  if (
$actual>1)
    
$texto = "<a href=\"$enlace$anterior\" class='verdana-10px'>&laquo; ANTERIOR</a> ";
  else
    
$texto = "<b>&laquo; ANTERIOR</b> ";
  for (
$i=1; $i<$actual; $i++)
    
$texto .= "<a href=\"$enlace$i\" class='verdana-10px'>$i</a> ";
  
$texto .= "<b>$actual</b> ";
  for (
$i=$actual+1; $i<=$total_paginas; $i++)
    
$texto .= "<a href=\"$enlace$i\" class='verdana-10px'>$i</a> ";
  if (
$actual<$total_paginas)
    
$texto .= "<a href=\"$enlace$posterior\" class='verdana-10px'>SIGUIENTE &raquo;</a>";
  else
    
$texto .= "<b>SIGUIENTE &raquo;</b>";
  return 
$texto;
}

echo 
paginar($pag, $total, $tampag, "search3.php?pag="); 
Muchas gracias por todo de antemano.
Saludos. Marx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.