PHP - Paginacion en search

   
Vista:

Paginacion en search

Publicado por Salvador Romo Macias (4 intervenciones) el 11/12/2014 22:32:34
buenas , pues tengo un problema , no se como hacer la paginacion cuando busca, en serio no lo se hacer , me cuesta , aquí esta el código


de search:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<!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 aqui el de paginacion

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
 
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> ";
    }
?>


me dijeron que basicamente con el codigo de paginacion se puede implementar en la busqueda , pero no logro saber como resolverlo , si alguno de ustedes e pudiera ayudar , se los agradeceria.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Xavi

Paginacion en search

Publicado por Xavi (28 intervenciones) el 12/12/2014 08:18:39
Hola Salvador, por lo que veo, lo único que te falta poner en la consulta de la búsqueda es el:
LIMIT $start ,$por_pagina

Si le añades eso a la variable $query ya te tendría que funcionar...

Recuerda gestionar dichas variables!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Paginacion en search

Publicado por Salvador Romo (4 intervenciones) el 12/12/2014 17:15:28
YA LO HE INTENTADO DE ESA MANERA PERO SIEMPRE ME SALE UN ERROR , ME DICE QUE LA FUNCION ESPERABA UN VALOR BOOLEANO , ASI . Y NO ME SIGUE FUNCIONANDO :(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Paginacion en search

Publicado por xve (5522 intervenciones) el 13/12/2014 00:28:42
Exactamente en que linea te da dicho error?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Paginacion en search

Publicado por Salvador Romo Macias (4 intervenciones) el 13/12/2014 15:57:34
El error me sale exacatamente cuando le pongo el limit y el start , y el error sale en
1
2
"  $queryplus= mysql_query($query);
	$numero=mysql_numrows($queryplus);"
me sale que esperaba dos valores booleanos no se la verdad a que se deba
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Paginacion en search

Publicado por Salvador Romo Macias (4 intervenciones) el 13/12/2014 17:40:37
si , el error me sale en mysql_ numrow :S .


lo que estoy intentando es estp :


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<!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'])){
 
	mysql_connect("localhost", "root", "");
        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;
 
  mysql_close();
 
 
	$search=$_GET['search'];
	$terms= explode(" ",$search);
	$query="SELECT * FROM usuarios   LIMIT  $start ,$por_pagina  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_num_rows($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>


pero pues me marca pedos en numroows :S
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar