Pregunta: Cómo puedo crear un sistema prev and next con manejo de errores.
Respuesta: La clave se encuentra en un comando de sql.
Creador: Abdel Rahman.
Script:
Código PHP:
<?
/* Ruta donde se encuentra el archivo
que contiene la dirección de email a
donde se reportarán errores si estos
suceden */
$rutaemail = "email.php";
include($rutaemail);
/* Ruta donde se encuentra el archivo
donde se realiza la conexión a la
base de datos */
$rutadeacceso = "usuario.php";
include($rutadeacceso);
$basededatos = "nombredelabasededatos"; // Nombre de la Base de Datos
if ($resultadoconnect != 0)
{
$resultadoselectdb = @mysql_select_db("$basededatos", $vinculo);
if ($resultadoselectdb != 0)
{
$numero = 10; // Número de resultados listados, si se quieren ver 20 resultados sólo se cambia el valor de 10 a 20.
if ( $v_next == 0)
$v_next = 0;
$tabla = "nombredelatabla";
$elcampo = "nombredelcampo";
$sql = "select * from $tabla where $elcampo like '%$palabraclave%' LIMIT ".$v_next.",".$numero.""; // $palabraclave es la variable que recibe.
$resultadoquery= @mysql_query($sql);
if ($resultadoquery != 0)
{
if ($fila = @mysql_fetch_array($resultadoquery))
{
echo "<html><body>";
echo "<table border='1' align='left' cellspacing='2' cellpadding='2'>";
echo "<tr><td><b>Resultados</b></td></tr>";
do
{
echo "<tr><td>";
echo $fila["nombredelcampo"]; // Campo de la tabla que se quiere mostrar.
echo "<td></tr>";
$v_next++;
}
while($fila = @mysql_fetch_array($resultadoquery));
$sql2 = "select count(*) num_reg from $tabla where $elcampo like '%$palabraclave%'"; // Averiguate para que sirve el count(*).
$resultadoquery2=@mysql_query($sql2);
$fila2 = @mysql_fetch_array($resultadoquery2);
$num_reg = $fila2["num_reg"];
$num_pag = $num_reg/$numero;
$j = 1;
$v_next = 0;
echo "<tr><td> </td></tr>";
echo "<tr><td>Número de Resultados: <b>$num_reg</b></td></tr>";
echo "<tr><td> </td></tr>";
echo "<tr><td>";
for ($i=0; $i<$num_pag; $i++)
{
echo " | <a href=$PHP_SELF?v_next=".$v_next."&palabraclave=".$palabraclave.">".$j."</a>";
$j++;
$v_next += $numero;
}
echo "</td></tr>";
echo "</table>";
@mysql_free_result($resultadoquery);
}
else
{
echo "<p align='center'>No se encontraron registros</p>";
}
}
else
{
echo "<p align='center'>Ha ocurrido un error!, Falló operación SQL</p>";
// Reportar al webmaster del error
error_log("Ha ocurrido un error!\n\nFalló operación SQL en la tabla: $tabla, base de datos: $basededatos.\nScript: nombredelscript.php", 1, "$email");
}
}
else
{
echo "<p align='center'>Ha ocurrido un error!, Falló la selección de la base de datos</p>";
// Reportar al webmaster del error.
error_log("Ha ocurrido un error!\n\nFalló la selección de la base de datos: $basededatos.\nScript: nombredelscript.php", 1, "$email");
@mysql_close($vinculo);
}
}
else
{
echo "<p align='center'>Ha ocurrido un error!, Falló la conexión a la base de datos</p>";
// Reportar al webmaster del error.
error_log("Ha ocurrido un error!\n\nFalló la conexión a la base de datos: $basededatos.\nScript: usuario.php", 1, "$email");
}
echo "</body></html>";
?>
Cotenido del archivo email.php
Cotenido del archivo usuario.php
Código PHP:
<?
// Nombre de host
$host = "localhost";
// Nombre del Usario
$usuario = "nombredelusuario";
// Clave de Acceso del Usuario
$clave = "clavedelusuario";
$vinculo = @mysql_pconnect ("$host", "$usuario", "$clave");
if ($vinculo != 0)
{
$resultadoconnect = 1;
}
else
{
$resultadoconnect = 0;
}
?>
Nota: Este script tiene manejo de errores y presenta los resultados y los números de las páginas, si pueden realizarle mejoras por favor ponerlo nuevamente en este foro.