PHP - Buscador y Paginación PHP, MySQL

   
Vista:

Buscador y Paginación PHP, MySQL

Publicado por Julio (11 intervenciones) el 01/03/2015 04:19:24
Buen día programadores, tengo varios problemas a la hora de colocar paginación a la página!
Bueno el problema es el siguiente: Desde la libreria de PHPPagin tengo este dato --- var $porPagina = 2; --- para que la página solo me muestre dos registros desde MySQL y así con su respectiva paginación, pero lo que no entiendo es porque me sale dos veces la paginación y porque sale arriba de todo? En la imagen les muestro el problema señalado con colo rojo!

Lo otro es que el buscador ya no me funciona! Desde que le añadí el código para la paginación!

Espero que alguien me pueda ayudar, ya que me he estado quebrando la cabeza por esto, soy nuevo aprendiendo PHP y MySQL por eso me cuesta!


Les dejo el código para que verifiquen como lo tengo editado!

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
<?php
	//----------------------Buscador---------------------------
		$consulta=mysql_query("select * from productos");
		if(isset($_POST['buscar'])){
				$consulta=mysql_query("select * from productos where nombre like '%".$_POST['buscar']."%' OR descripcion like '%".$_POST['buscar']."%'");
		}
 
	//---------------------Paginación--------------------------
			require_once 'libs/PHPPagin.php';
$paging = new PHPPaging;
 
	$paging->agregarConsulta("select * from productos");
	$paging->ejecutar();
 
	while ($filas= $paging->fetchResultado()) {
		$id=$filas['id'];
		$imagen=$filas['imagen'];
		$nombre=$filas['nombre'];
		$desc=$filas['descripcion'];
		$precio=$filas['precio'];
		$enStock=$filas['cuanto_hay'];
		$fecha=$filas['fecha'];
 
		echo 'Paginas '.$paging->fetchNavegacion();
	?>
    <tr>
      <td bgcolor="#FFFFFF"><?php echo $id ?></td>
      <td bgcolor="#FFFFFF"><img src="<?php echo $imagen; ?>" width="70" height="70" /><br /></td>
      <td bgcolor="#FFFFFF"><?php echo $nombre ?></td>
      <td bgcolor="#FFFFFF"><?php echo $desc ?></td>
      <td bgcolor="#FFFFFF"><?php echo $precio ?></td>
      <td bgcolor="#FFFFFF"><?php echo $enStock ?></td>
      <td bgcolor="#FFFFFF"><?php echo $fecha ?></td>
      <td bgcolor="#FFFFFF">asd</td>
    </tr>
 
    <?php }?>

img
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

Buscador y Paginación PHP, MySQL

Publicado por h (1 intervención) el 01/03/2015 04:23:40
Porque esta dentro del while y lo imprime varias veces
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Buscador y Paginación PHP, MySQL

Publicado por Julio (11 intervenciones) el 01/03/2015 04:40:52
Ok entiendo! Y que debería colocarle en vez del While para que funcione correctamente?
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

Buscador y Paginación PHP, MySQL

Publicado por Manuel Emilio Vargas Herrera (154 intervenciones) el 01/03/2015 17:41:40
¿Por qué no colocas la instrucción

1
echo 'Paginas '.$paging->fetchNavegacion();

después del cierre del "while"?

También podrías sustituir la instrucción

1
$paging->agregarConsulta("select * from productos");

por

1
2
3
4
5
6
7
if(isset($_POST['buscar'])){
$paging->agregarConsulta("select * from productos where nombre like '%".$_POST['buscar']."%' OR descripcion like '%".$_POST['buscar']."%'");
}
else
{
$paging->agregarConsulta("select * from productos");
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Buscador y Paginación PHP, MySQL

Publicado por Julio (11 intervenciones) el 02/03/2015 02:21:38
Amigo agradezco por tu respuesta! Tienes razón el echo debe ir despues del cierre del while...
*Lo bueno es que ya logré solucionar lo de la paginación (abajo les dejo el código de como lo hice).
*Y lo malo es que sigue sin funcionarme el buscador. Cuando doy click en buscar no me muestra nada. ¿Habrá alguna forma de arreglar esto?
<?php
//----------------------Buscador---------------------------
$consulta=mysql_query("select * from productos");
if(isset($_POST['buscar'])){
$consulta=mysql_query("select * from productos where nombre like '%".$_POST['buscar']."%' OR descripcion like '%".$_POST['buscar']."%'");
}

//---------------------Paginación--------------------------
require_once 'libs/PHPPaging.php';
$paging = new PHPPaging;

$paging->agregarConsulta("select * from productos");
$paging->ejecutar();

while ($filas= $paging->fetchResultado()) {
echo "<tr>";
echo "<td>".$filas['id']."</td>";
echo "<td><img src='".$filas['imagen']."' width='70' height='70'></td>";
echo "<td>".$filas['nombre']."</td>";
echo "<td>".$desc=$filas['descripcion']."</td>";
echo "<td>".$precio=$filas['precio']."</td>";
echo "<td>".$enStock=$filas['cuanto_hay']."</td>";
echo "<td>".$fecha=$filas['fecha']."</td>";
echo "</tr>";
}
echo 'P&aacute;ginas '.$paging->fetchNavegacion();
?>

<?php ?>
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

Buscador y Paginación PHP, MySQL

Publicado por MMan (59 intervenciones) el 02/03/2015 03:05:54
hola... para que tienes la variable $consulta = "SENTENCIA SQL"


y luego en la paginacion pones otra "SENTENCIA SQL"

.... me parece que lo correcto seria usar esa variable en la paginacion
1
2
3
4
5
6
7
8
9
10
11
12
//----------------------Buscador---------------------------
$consulta=mysql_query("select * from productos");
if(isset($_POST['buscar'])){
$consulta=mysql_query("select * from productos where nombre like '%".$_POST['buscar']."%' OR descripcion like '%".$_POST['buscar']."%'");
}
 
//---------------------Paginación--------------------------
require_once 'libs/PHPPaging.php';
$paging = new PHPPaging;
 
$paging->agregarConsulta(

$consulta

);
$paging->ejecutar();
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

Buscador y Paginación PHP, MySQL

Publicado por Manuel Emilio Vargas Herrera (154 intervenciones) el 02/03/2015 04:14:37
Podrías sustituir el código
1
$paging->agregarConsulta("select * from productos");
por
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if(isset($_POST['buscar'])){
    $paging->agregarConsulta("select * from productos where nombre like '%".$_POST['buscar']."%' OR descripcion like '%".$_POST['buscar']."%'");
    $paging->ejecutar();
} // if(isset($_POST['buscar'])){
else
{
    if ($num_pagina == -1)
    {
        $paging->agregarConsulta("select * from productos");
        $paging->ejecutar();
    } // if ($num_pagina == -1)
    else
    {
        $paging->IrAPagina($num_pagina);
    } // else
} // else

y en el método "IrAPagina" escribir algo así como:

1
mysql_data_seek($resultado, ($num_pagina-1)*10);
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

Buscador y Paginación PHP, MySQL

Publicado por Manuel Emilio Vargas Herrera (154 intervenciones) el 02/03/2015 05:06:12
Otra forma de cambiar el código fuente podría ser la siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if($SePresionoBotonBuscar)
{
    if(isset($_POST['buscar'])){
        $paging->agregarConsulta("select * from productos where nombre like '%".$_POST['buscar']."%' OR descripcion like '%".$_POST['buscar']."%'");
    } // if(isset($_POST['buscar'])){
    else
    {
        $paging->agregarConsulta("select * from productos");
    } // else
 
    $paging->ejecutar();
} // if($SePresionoBotonBuscar)
elseif ($paging->EsPaginaValida($num_pagina))
{
    $paging->IrAPagina($num_pagina);
} // elseif ($paging->EsPaginaValida($num_pagina))
else
{
    $paging->IrAPagina(1);
} // else
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

Buscador y Paginación PHP, MySQL

Publicado por Julio (11 intervenciones) el 02/03/2015 05:51:41
Perdón por la ignorancia! Y agradezco las respuestas... Pero la verdad no logro entender, el buscador sigue sin funcionar, no se que más debería agregar, quitar o modificar al código para que funcione?
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
//----------------------Buscador---------------------------
		$consulta=mysql_query("select * from productos");
		if(isset($_POST['buscar'])){
				$consulta=mysql_query("select * from productos where nombre like '%".$_POST['buscar']."%' OR descripcion like '%".$_POST['buscar']."%'");
		}
		while($filas=mysql_fetch_array($consulta)){
			$id=$filas['id'];
			$imagen=$filas['imagen'];
			$nombre=$filas['nombre'];
			$desc=$filas['descripcion'];
			$precio=$filas['precio'];
			$enStock=$filas['cuanto_hay'];
			$fecha=$filas['fecha'];
		}
 
	//---------------------Paginación--------------------------
			require_once 'libs/PHPPaging.php';
$paging = new PHPPaging;
 
	$paging->agregarConsulta("select * from productos");
	$paging->ejecutar();
 
	while ($filas= $paging->fetchResultado()) {
		echo "<tr>";
		echo "<td>".$filas['id']."</td>";
		echo "<td><img src='".$filas['imagen']."' width='70' height='70'></td>";
		echo "<td>".$filas['nombre']."</td>";
		echo "<td>".$filas['descripcion']."</td>";
		echo "<td>".$filas['precio']."</td>";
		echo "<td>".$filas['cuanto_hay']."</td>";
		echo "<td>".$filas['fecha']."</td>";
		echo "</tr>";
	}
		echo 'P&aacute;ginas '.$paging->fetchNavegacion();
	?>
 
    <?php ?>
img2 Solamente quiero hacer funcionar el buscador y el paginador!
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

Buscador y Paginación PHP, MySQL

Publicado por Manuel Emilio Vargas Herrera (154 intervenciones) el 02/03/2015 06:34:56
Al código fuente se le podrían hacer los siguientes cambios:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if($SePresionoBotonBuscar)
{
    if(isset($_POST['buscar'])){
        $paging->agregarConsulta("select * from productos where nombre like '%".$_POST['buscar']."%' OR descripcion like '%".$_POST['buscar']."%'");
    } // if(isset($_POST['buscar'])){
 
    else
    {
        $paging->agregarConsulta("select * from productos");
    } // else
 
    $paging->ejecutar();
} // if($SePresionoBotonBuscar)
 
elseif ($paging)
{
    if ($paging->EsPaginaValida($num_pagina))
    {
        $paging->IrAPagina($num_pagina);
    } // if ($paging->EsPaginaValida($num_pagina))
} // elseif ($paging)

luego sustituir:

1
while ($filas= $paging->fetchResultado()) { ...

por...

1
2
3
if ($paging)
{
while ($filas= $paging->fetchResultado()) { ...
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

Buscador y Paginación PHP, MySQL

Publicado por Manuel Emilio Vargas Herrera (154 intervenciones) el 02/03/2015 16:36:17
También puedes modificar el código fuente de la siguiente forma:

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
if($SePresionoBotonBuscar)
{
    $paging = new PHPPaging;
 
    if(isset($_POST['buscar'])){
        $paging->agregarConsulta("select * from productos where nombre like '%".$_POST['buscar']."%' OR descripcion like '%".$_POST['buscar']."%'");
    } // if(isset($_POST['buscar'])){
 
    else
    {
        $paging->agregarConsulta("select * from productos");
    } // else
 
    $paging->ejecutar();
} // if($SePresionoBotonBuscar)
 
elseif ($paging)
{
    if ($paging->EsPaginaValida($num_pagina))
    {
        $paging->IrAPagina($num_pagina);
    } // if ($paging->EsPaginaValida($num_pagina))
 
    elseif ($paging->EsPaginaValida($paging->UltimaPaginaDesplegada))
    {
        $paging->IrAPagina($paging->UltimaPaginaDesplegada);
    } // elseif ($paging->EsPaginaValida($paging->UltimaPaginaDesplegada))
} // elseif ($paging)
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

Buscador y Paginación PHP, MySQL

Publicado por Manuel Emilio Vargas Herrera (154 intervenciones) el 03/03/2015 17:29:45
Aquí comparto contigo el siguiente código fuente:

1
2
3
4
<form method="post">
<?php echo "¿Se hizo un post?:" . isset($_POST["btnEnviar"])?>
<input type="submit" name="btnEnviar" value="Enviar">
</form>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar