Advertencia: División por cero en /home/

He buscado el problema, pero no puedo encontrarlo, tengo un script que me da esta advertencia Advertencia: División por cero en /home/ en la línea 52.php - puede ver el error en http://usedcarsforsaleingauteng.com/

Si miras a continuación, $páginas = ceil($total / $_GET[p]); // número de páginas es la línea 52.php

¿Pueden ayudar por favor? Gracias

// get total number of entries for pagenation
$result = mysql_query("SELECT COUNT(*) FROM $dblist $where", $link);
$total  = mysql_fetch_array($result); $total = $total[0]; // total number of listings
$pages  = ceil($total / $_GET[p]); // number of pages
}

preguntado el 28 de julio de 12 a las 18:07

el GET parámetro p está desarmado. ¿Cómo se ve tu URL al acceder a la página? -

$_GET['p'] no se definirá a menos que haya un argumento llamado p en la cadena de consulta... por lo que debe tener una longitud de página predeterminada en caso de que no esté configurada. -

No pretendo ser obvio... pero ¿ha verificado para asegurarse de que a "$_GET[p]" se le haya asignado un valor distinto de cero ;)? ¿Y qué es "p"? Creo que probablemente necesites algo como esto: if (isset($_GET['p'])) { $pages = = ceil($total / $_GET['p']);...` -

También verifique si la constante 'p' está definida y cuál es el valor si lo está. -

Probablemente debería decir que no soy programador, pero tengo acceso completo, sé html y css y algo de php, y puedo seguir instrucciones claras ;-) -

3 Respuestas

La mejor manera de evitar esto sería comprobar si $_GET['p'] es 0 antes de hacer la división, algo así como;

$pages = ($_GET['p']==0) ? 1 : ceil($total / $_GET['p']);

O lo que quieras $pages ser si $_GET['p'] es 0 (acabo de asumir 1 en el ejemplo anterior)

Respondido 28 Jul 12, 18:07

Deberías usar $_GET['p'] no $_GET[p] (Observe la ' )

Acabo de visitar su sitio web y vi el error. No estás configurando el $_GET['p'] variable a un valor alternativo si no se proporciona con la URL.

Cuando visites http://usedcarsforsaleingauteng.com/ ves el error, pero no con: http://usedcarsforsaleingauteng.com/?p=1

Debe tener un valor de reserva:

if($_GET['p']){
 $page = $_GET['p'];
} else{
 $page = 1;
}
$pages  = ceil($total / $page);

Respondido 28 Jul 12, 18:07

Bueno, entonces probablemente el $_GET['p'] no está configurado o su valor es 0. Intente imprimirlo. - Arsh singh

De acuerdo, el problema no estaba allí, hasta que cambié el nombre de la carpeta /admin a otra cosa y algunos archivos requieren esos archivos /carpetas, pero rápidamente lo volví a cambiar: Sarah

Actualicé la respuesta, debería solucionar su problema: Arsh singh

Está bien, intentaré esto rápidamente gracias - Sarah

Eso solucionó el problema, pero veo este problema en muchas otras páginas ahora también, probablemente estaba allí antes :-( - Sarah

$_GET[p] es probablemente indefinido. Deberías comprobar si existe:

if(isset($_GET['p'])) {
    $p = (int) $_GET['p'];
    // Your code
    if($p != 0)
        $pages  = ceil($total / $p);
    else {
        // Do errorhandling e.g. setting $page = 0
    }
}

También tenga en cuenta que siempre debe escribir $_GET['p'] en lugar de $_GET[p].

Respondido 28 Jul 12, 18:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.