2
« 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.