SoloCodigo
		Programación Web y Scripting => PHP => Mensaje iniciado por: agustinbel en Domingo 12 de Diciembre de 2004, 19:30
		
			
			- 
				Hola de nuevo.... Mi problema esta vez es con la paginación de una busqueda que realizo a traves de un formulario que envia un filtro (WHERE). El problema lo tengo al escribir el script de paginar, al pulsar el link para que acceda a la siguiente página, pierde el filtro y no me muestra ningún registro. Como lo hago para que lo recuerde?
 
 He realizado una tabla de búsqueda desde Macromedia Dreamwaver, y este sería el codigo:
 Código antes de la etiqueta HTML.
 <?php require_once('Connections/familiabel.php'); ?>
 <?php
 $currentPage = $_SERVER["PHP_SELF"];
 $maxRows_fotos = 5;
 $pageNum_fotos = 0;
 if (isset($_GET['pageNum_fotos'])) {
 $pageNum_fotos = $_GET['pageNum_fotos'];
 }
 $startRow_fotos = $pageNum_fotos * $maxRows_fotos;
 
 $colname_fotos = "1";
 if (isset($_POST['artista'])) {
 $colname_fotos = (get_magic_quotes_gpc()) ? $_POST['artista'] : addslashes($_POST['artista']);
 }
 mysql_select_db($database_familiabel, $familiabel);
 $query_fotos = sprintf("SELECT * FROM fotos WHERE autor = '%s'", $colname_fotos);
 $query_limit_fotos = sprintf("%s LIMIT %d, %d", $query_fotos, $startRow_fotos, $maxRows_fotos);
 $fotos = mysql_query($query_limit_fotos, $familiabel) or die(mysql_error());
 $row_fotos = mysql_fetch_assoc($fotos);
 
 if (isset($_GET['totalRows_fotos'])) {
 $totalRows_fotos = $_GET['totalRows_fotos'];
 } else {
 $all_fotos = mysql_query($query_fotos);
 $totalRows_fotos = mysql_num_rows($all_fotos);
 }
 $totalPages_fotos = ceil($totalRows_fotos/$maxRows_fotos)-1;
 
 $queryString_fotos = "";
 if (!empty($_SERVER['QUERY_STRING'])) {
 $params = explode("&", $_SERVER['QUERY_STRING']);
 $newParams = array();
 foreach ($params as $param) {
 if (stristr($param, "pageNum_fotos") == false &&
 stristr($param, "totalRows_fotos") == false) {
 array_push($newParams, $param);
 }
 }
 if (count($newParams) != 0) {
 $queryString_fotos = "&" . htmlentities(implode("&", $newParams));
 }
 }
 $queryString_fotos = sprintf("&totalRows_fotos=%d%s", $totalRows_fotos, $queryString_fotos);
 ?>
 el código que le pone para ir a la página siguiente es este:
 <?php if ($pageNum_fotos > 0) { // Show if not first page ?>
 <a href="<?php printf("%s?pageNum_fotos=%d%s", $currentPage, max(0, $pageNum_fotos - 1), $queryString_fotos); ?>" class="normal">anterior</a>
 <?php } // Show if not first page ?>
 Por favor necesitaría que alguien me ayudaraen este aspecto.... Como le meto a ese vínculo algo para que me continue mostrando sólo los registros que cumplen el WHERE, en la expresión $query_fotos = sprintf("SELECT * FROM fotos WHERE autor = '%s'", $colname_fotos);.
 Muchas Gracias a todos.
 
 PD, os adjunto un pdf con el código completo de la página por si os sirve de algo.