Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/09/2012, 05:06
Avatar de paxarin
paxarin
 
Fecha de Ingreso: enero-2010
Ubicación: Santander
Mensajes: 413
Antigüedad: 14 años, 9 meses
Puntos: 6
Problema con el paginador del buscador

Muy buenas.
Estoy intentando hacer una paginación de resultados de el buscador de mi web pero no acabo de entender el por que no funciona correctamente.
Me saca un NOTICE
Notice: Undefined index: num in C:\xampp\htdocs\paxarin\prueba-buscador\index.php on line 54
Esta es la linea
$pagina=$_GET["num"];
Cuando le doy a buscar me saca todos los resultado aunque tengo declarado que solo me saque 5 resultados
$registros=5;
Alguien puede decirme el por que ocurre esto?
Aqui os dejo el codigo completo
Código:
<?php
$server_link = mysql_connect("localhost", "root", "");
if(!$server_link){
    die("Falló la Conexión ". mysql_error());
}
// seleccionamos la base de datos
$db_selected = mysql_select_db("cursopaginadb", $server_link);
if(!$db_selected){
    die("No se pudo seleccionar la Base de Datos ". mysql_error());
}
//if para que cuando se cargue la pagina no aparezca el error de no existe busqueda
if (empty($_GET['frase'])){
$texto_busqueda = "";
}else{
$texto_busqueda = $_GET['frase'];}
// varificamos que el formulario halla sido enviado
if(isset($_GET['buscar']) && $_GET['buscar'] == 'Buscar'){
    $frase = addslashes($_GET['frase']);
    // hacemos la consulta de busqueda
    // ver explicación mas abajo
    $sqlBuscar = mysql_query("SELECT titulo, url, descripcion,
                            MATCH (titulo, url, descripcion)
                            AGAINST ('$frase' IN BOOLEAN MODE) AS coincidencias
                            FROM buscador WHERE MATCH (titulo, url, descripcion)
                            AGAINST ('$frase' IN BOOLEAN MODE)
                            ORDER BY coincidencias DESC", $server_link)
                            or die(mysql_error());
    $totalRows = mysql_num_rows($sqlBuscar);
    // Enviamos un mensaje
    // indicando la cantidad de resultados ($totalRows)
    // para la frase busada ($frase)
    if(!empty($totalRows)){
        echo stripslashes("<p>Su b&uacute;squeda arroj&oacute; <strong>$totalRows</strong> resultados para <strong>$frase</strong></p>");
        // mostramos los resultados
        while($row = mysql_fetch_array($sqlBuscar)){
            echo "<strong><a href='#'>$row[titulo]</a></strong> <em></em><br />";
			echo "<a href='".substr(strip_tags($row['url']), 0, 255)."' >Ir a pagina</a>";
            //echo "<a href=''>".substr(strip_tags($row['url']), 0, 255)."...</a>";
			echo "<p>".substr(strip_tags($row['descripcion']), 0, 255)."...</p>";
        }
    }
    // si se ha enviado vacio el formulario
    // mostramos un mensaje del tipo Oops...!
    elseif(empty($_GET['frase'])){
        echo "Debe introducir una palabra o frase.";
    }
    // si no hay resultados //
    //otro mensaje del tipo Oops...!
    elseif($totalRows == 0){
        echo stripslashes("Su busqueda no arrojo resultados para <strong>$frase</strong>");
    }
}
$registros=5;
$pagina=$_GET["num"];
if(is_numeric($pagina))
	$inicio=(($pagina-1)*$registros);
else
	$inicio=0;
	$sqlBuscar=mysql_query("SELECT * FROM buscador ORDER BY titulo LIMIT $inicio, $registros;",$server_link);
	//redondeo de paginas con ceil
$paginas= ceil($totalRows/$registros);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Prueba buscador</title>
</head>

<body>
    
<form name="buscar" action="<?php $_SERVER['PHP_SELF'] ?>" method="get">
    Buscar: <input type="text" size="50" value="<?php echo ($texto_busqueda); ?>" name="frase" />
    <input type="submit" name="buscar" value="Buscar" />
</form>
 <?php
			if($pagina>1)
				echo "<a href='index.php?num=". ($pagina-1) ."'>Anterior</a> ";
				for($cont=1;$cont<=$paginas;$cont++)
				{
					//verificamos en la pagina que estamos para que no este el link
					if($cont==$pagina)
						echo $cont ." ";
					else
						
						echo "<a href='index.php?num=". $cont ."'>$cont</a> ";
				}
				if($pagina<$paginas)
				echo "<a href='index.php?num=". ($pagina+1) ."'>Siguiente</a> ";
			?>
</body>
</html>
__________________
http://www.paxarindesign.es