• Viernes 29 de Marzo de 2024, 09:59

Autor Tema:  Paginar El Resultado De Una Búsqueda  (Leído 1151 veces)

agustinbel

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
    • http://www.lafamiliabel.com
Paginar El Resultado De Una Búsqueda
« en: Domingo 12 de Diciembre de 2004, 19:30 »
0
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.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
Por un software libre.