PHP - Problema paginación que no veo....

 
Vista:

Problema paginación que no veo....

Publicado por BBV (2 intervenciones) el 13/11/2013 20:49:44
Buenas gente, llevo pegándome todo el día con este código y no soy capaz de arreglarlo, ruego ayuda:

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
<?php include 'header.php';
 include 'conexion.php'; ?>
<!-- Hoja de Estilos -->
	 <link rel="stylesheet" type="text/css" href="css/aplicacion.css">
</head>
 
<body>
<!--<div id="top">administraci&oacute;n</div>-->
<section id="contenedor">
	<header>
		<div id="header_left">
			<img src="logo.png " width="130">
		</div>
		<div id="header_right">
			<div id="grislog"><a href="loguin.php">Loguin</a></div>
		</div>
	</header>
	<section id="cuerpo_propiedades">
					<?php include 'menu.php' ?>
				<section id="propiedades">
				<div id="titulopropiedades">Búsquedas:</div>
 
					<form action="input.php" method="post" id="buscadorinmobiliario">
					 <input type="text" name="palabra" placeholder="Inmueble a buscar..." required>
					<input type="submit" id="boton_envio" name="buscador" value="Buscar">
					</form>
			<br>
<?php
 
	$tam_pag = 2;
	$pagina = $_GET['pagina'];
		if (!$pagina) {
		   	 $inicio = 0;
			 $pagina=1;
 
			}
			else {
			   	$inicio = ($pagina - 1) * $tam_pag;
			}
 
 
 
 
		$buscar=$_POST['palabra'];
 
		$consulta = "SELECT * FROM propiedades WHERE descripcion like '%$buscar%' ORDER BY id_pro DESC";
 
		$rs = mysql_query($consulta);
 
		$num_total_registros = mysql_num_rows($rs);
 
		$total_paginas = ceil($num_total_registros / $tam_pag);
 
 
?>
<br>
<table width="100%" border="0">
<?php
$ssql = "SELECT * FROM propiedades WHERE descripcion like '%$buscar%' ORDER BY id_pro DESC " .  " limit " . $inicio . "," . $tam_pag;
$rs = mysql_query($ssql);
while ($row = mysql_fetch_array($rs)){
?>
			<p><br><b><a href="verinput.php?id=<?=$row['id_pro'];?>">
			<?=$row['descripcion'];?></a></b>:&nbsp; <em>
			<?=$row['observaciones']; ?></em><br><br></p>
<?
}
?>
 
</table>
<?
 
	if($total_paginas) {
 
			echo "<center>";
 
			if(($pagina - 1) > 0) {
				echo "<a href='input.php?pagina=".($pagina-1)."'>< Anterior</a> ";
			}
 
			for ($i=1; $i<=$total_paginas; $i++){
				if ($pagina == $i)
					echo "<b>".$pagina."</b> ";
				else
         	                     echo "<a href='busquedas.php?pagina=" . $i .  "'>" . $i . "</a> "; 	}
 
			if(($pagina + 1)<=$total_paginas) {
				echo " <a href='input.php?pagina=".($pagina+1)."'>Siguiente ></a>";
			}
 
			echo "</center>";
 
		}
?>
		</section>
	</section>
 
</section>
<div id="espacio_blanco"></div>
<?php
	include 'desconexion.php';
	include 'footer.php';
?>


Mi problema es que me página mal, me hace bien el calculo de resultados buscados, y el número de páginas a mostrar, y entonces veo que la primera página de búsqueda está perfecta, pero luego paso y me aumenta el número de páginas al total de páginas máximo si hiciera una consulta a toda la base de datos.... con lo cuál al final obtengo una paginación de TODOS los resultados, no de lo buscado a través del formulario.


Muchas gracias por adelantado por vuestro tiempo y espero que me podáis ayudar.
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

Problema paginación que no veo....

Publicado por Mari Carmen (145 intervenciones) el 13/11/2013 21:31:39
No puedo solucionar tu problema, mas que nada por que has hecho tal simbiosis entre los códigos html y php que solo intentar entenderlo me costaría varias horas. Deberías separar los distintos lenguajes de programación lo máximo posible para no caer en errores.

Aparte te animo a que leas y apliques normas de programación para que a la hora de hacer el proyecto con mucha mas gente o acudir a foros para pedir ayuda les sea mas facil ayudarte.

Un saludo y lo siento.
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

Problema paginación que no veo....

Publicado por BBV (2 intervenciones) el 13/11/2013 21:51:19
1.- Ya están separados, los include de php que contienen a parte de la conexión y desconexión de la base de datos contenido como el footer, el menu de la web o el header, el css, el javascript, el jquery, etc... aquí están tan mezclado como están los CMS.

2.- Me alegro que seas tan sincera aunque discrepo de tu opinión.

3.- Si vengo a un foro es porque algo que me tenía que funcionar y normalmente lo hacía, no me funcionaba porque, cosas de la vida, me obceque, pero ahora ya me funciona.

4.- Como ya lo he solucionado y como los foros para algo están dejo la solución por si alguna persona de cualquier parte acaba aquí con el mismo problema y vea que hay gente que dejamos ayudas.

5.- Conclusión, yo pedi ayuda, me la denegaron pero lo solucione y lo voy a compartir para si viene otra persona con problemas pueda solucionar su problema.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
$buscar = (!isset($buscar) ? $_REQUEST["palabra"]: $buscar);
print "$buscar";
	if($total_paginas) {
 
			echo "<center>";
 
			for ($i=1; $i<=$total_paginas; $i++){
				if ($pagina == $i)
					echo "<b>".$pagina."</b> ";
				else
         	 echo "<a href='input.php?pagina=$i&palabra=$buscar'>" . $i . "</a> ";
			}
 
 
			echo "</center>";
 
		}
?>

Con esa modificación FUNCIONA perfectamente.
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

Problema paginación que no veo....

Publicado por Mari Carmen (145 intervenciones) el 13/11/2013 22:18:36
Siento si ha sonado mal lo que te he dicho, no era para nada mi intención que te sintieses mal. Yo estoy en este foro por voluntad, nadie me dice que esté aquí ni me paga para estarlo. (Ni siquiera tu) Así que exigencias las mínimas...
La única que te ha "denegado" algo aquí soy yo y no el foro entero.

Desde mi experiencia juntar tanto el código html y PHP solo sirve para hacerlo difícil de entender a quienes intentan ayudarte. Que separes partes del código como el footer o el header no es realmente separar el código.
Los CMS actuales suelen usar plantillas y un MVC que abstrae y mucho el tema de la programación en distintos lenguajes.

Me alegra aun así que solucionases tu error.

Un saludo.
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
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema paginación que no veo....

Publicado por xve (6935 intervenciones) el 13/11/2013 22:44:18
Estoy de acuerdo con Mari Carmen, no se si son los editores o la falta de experiencia, pero muchos de los código que se publican, son imposibles de entender para quien lo los has desarrollado... es muy importante tabular bien los códigos.
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
sin imagen de perfil

Problema paginación que no veo....

Publicado por Elier (92 intervenciones) el 14/11/2013 18:15:58
Estoy de acuerdo con Mari Carmen y XVE

Estoy seguro que Mari te escribió con ánimo de aconsejar y no de criticar.

Al principio es un poco dificil entender que lo que mas cuesta del software es el mantenimiento, por eso es importante desde el principio no escribir código en espagueti sino separarlo en módulos como los raviolis, de esa manera se puede ir probando cada funcionalidad, porque cuando aparece un error (bug, un bicho en tu camino) si tienes todo mezclado es más dificil depurar.

Te aconsejo trates de aplicar el patrón MVC en tus aplicaciones. Existen buenos frameworks para PHP que ayudan a desarrollar aplicaciones muy rápidamente, centrándonos en lo importante de nuestra aplicación.

Un ejemplo es CakePHP que tiene muy buena documentación y un componente para Paginación.

http://book.cakephp.org/2.0/en/core-libraries/components/pagination.html

Puedes descargar el libro en formato PDF

http://book.cakephp.org/2.0/_downloads/en/CakePHPCookbook.pdf
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