Foros del Web » Programando para Internet » PHP »

Implementar paginacion en search

Estas en el tema de Implementar paginacion en search en el foro de PHP en Foros del Web. buenas , solicito su ayuda por si serian amables de ayudarme. Lo que pasa es que estoy teniendo problemas de como paginar una busqueda, tengo ...
  #1 (permalink)  
Antiguo 11/12/2014, 12:31
 
Fecha de Ingreso: febrero-2014
Ubicación: Guadalajara
Mensajes: 34
Antigüedad: 10 años, 10 meses
Puntos: 0
Implementar paginacion en search

buenas , solicito su ayuda por si serian amables de ayudarme. Lo que pasa es que estoy teniendo problemas de como paginar una busqueda, tengo un codigo de pagiancion y el otro de search , me lo dieron en un curso , y me encargaron practicamente poner el de paginacion dentro de la busqueda






ese el de search .

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
	<title>Untitled</title>
</head>

<body>

<center>
<form method="get" action="">
	
<input type="text" name="search"/>
<input type="submit" name="submit" value="buscar en bd"/>


</form>

</center>
<hr>

<u>Resultados</u>:
<?php


error_reporting(E_ERROR | E_WARNING | E_PARSE);
if(isset($_REQUEST['submit'])){
	
	
	
	
	
	
	
	$search=$_GET['search'];
	$terms= explode(" ",$search);
	$query="SELECT * FROM usuarios   WHERE ";
	
	
	
	
       
	
	
		
	$i=0;
	
	 foreach($terms as $each){
          
	  
	  
	  $i++;
	  if($i==1){
		
		$query.= "nombre LIKE  '%$each%'";
		
	            }else{
			
		$query.= "OR  nombre LIKE '%$each%'" ;	
			
		    }
	  
		}	
	
	
	
	mysql_connect("localhost", "root", "");
        mysql_select_db("nueva");
	
	$queryplus= mysql_query($query);
	$numero=mysql_numrows($queryplus);
	
        
	


	
	
	
	
	if($numero >0  && $search!=""){
		
	echo "$numero resultado(s) Encontrado(s) para <b>$search</b>¡";	
		 while($row= mysql_fetch_assoc($queryplus )){
			
			$id=$row['id'];
			$name=$row['nombre'];
			$email=$row['email'];
			$password=$row['passwrod'];
			
			
			
			
		echo "<br/><h3>Nombre:$name(id:$id)</h3>$email<br/> Password:$password";	
			
		 }
		
		
		


		
		
		
		
		
		
		
		
	}else{
		
		echo"No hay resultados cn este nombre¡¡¡";
		
		
	}
	
	mysql_close();
}else{
	
	
echo "Escribe algo....";	
	
	
}

?>

</body>
</html>


y este es el de paginacion


Código:
mysql_connect("localhost","root","")or die("No se ha podido conectar...");
mysql_select_db("nueva");
$por_pagina =6;

$pagina_query= mysql_query("SELECT  COUNT('id') FROM usuarios ");

$paginas= ceil (mysql_result($pagina_query, 0)/ $por_pagina);    

$pagina=(isset($_GET['pagina']))?(int)$_GET['pagina'] :1;

$start= ($pagina-1)* $por_pagina;

$query2= mysql_query("SELECT nombre FROM usuarios  LIMIT $start ,$por_pagina  ");

while( $query_row= mysql_fetch_assoc( $query2)){
    
    echo $query_row['nombre']."</br>";
    
        }

if($paginas >= 1){
    
    
    
    $anterior= $pagina-1;
    $siguiente= $pagina+1;
    
    if(!($pagina<=1)){
        
    echo "<a href='paginacion.php?pagina=$anterior'>Anterior    </a> ";

     
        
    }    
    
      for($x=1;$x<=$paginas;$x++){
      
       echo($x==$pagina)? '<b><a href=" ?pagina='.$x. '">'."".$x.'</a> <b>'  : '<a href=" ?pagina='.$x. '">'." ".$x.'</a> ' ;
    } 
    
    
}
 
 
 if(!($pagina>=$paginas)){
        
    echo "<a href='paginacion.php?pagina=$siguiente'>  Siguiente </a> ";

     
        
    }    
    
 



?>


como le harian ustedes para hacerlo utilizando el codigo de paginación , seria una gran ayuda si ustedes me pudiesen ayudar, ya lo e intentado de varias maneras, pero no me sale , agradeceríasu ayuda.


y pues practicamente , no es modificar mucho , sólo tengo que checar como es la consulta , porque lo demas segun yo va igualito , pero la consulta me falla.

Última edición por superchava666; 11/12/2014 a las 12:38
  #2 (permalink)  
Antiguo 11/12/2014, 13:06
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 11 meses
Puntos: 206
Respuesta: Implementar paginacion en search

Código PHP:
Ver original
  1. $query2= mysql_query("SELECT nombre FROM usuarios  LIMIT  " . --$pagina * $items_por_pagina . ", " . $items_por_pagina);

La consulta es esa, asi que la tienes bien. El error estará en otro sitio.
¿Estas segura de que $pagina nunca es menor que 1, ni que nunca superará el número de páginas?
En la consulta no has usado el buscador, que suele ser un LIKE '%$search%' sobre algún campo, en las dos consultas, la del count y la de paginación.

Última edición por marlanga; 11/12/2014 a las 13:12
  #3 (permalink)  
Antiguo 11/12/2014, 13:36
 
Fecha de Ingreso: febrero-2014
Ubicación: Guadalajara
Mensajes: 34
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Implementar paginacion en search

si , tienes razon , nunca utilizo la consulta sobre los campos de count y paginacion, esa es mi duda. como puedo hacer que la consulta de busqueda este sobre la de count y paginacion, dentro del codigo del search. y eso es lo que no le entiendo , no se como resolverlo.. me ayudarías....porfavor te lo agardeceria bastante
  #4 (permalink)  
Antiguo 11/12/2014, 13:46
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 11 meses
Puntos: 206
Respuesta: Implementar paginacion en search

Código PHP:
Ver original
  1. $pagina_query= mysql_query("SELECT  COUNT('id') FROM usuarios WHERE nombre like '%{$search}%'");
  2. $query2= mysql_query("SELECT nombre FROM usuarios  WHERE nombre like '%{$search}%' LIMIT  " . --$pagina * $items_por_pagina . ", " . $items_por_pagina);

Se pueden hacer búsquedas mucho más complicadas y fiables, pero de momento te tendrá que bastar con una simple.
  #5 (permalink)  
Antiguo 11/12/2014, 18:37
 
Fecha de Ingreso: febrero-2014
Ubicación: Guadalajara
Mensajes: 34
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Implementar paginacion en search

Disculpa no entendi a tu explicación : / si fueras tan amable de volver a explicar , intenté lo que me dijiste pero no pude./o algún otro que sea tan amable

Etiquetas: html, implementar, mysql, paginacion, search, select, sql, usuarios
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 09:21.