Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/09/2009, 03:06
beutxita
 
Fecha de Ingreso: septiembre-2009
Mensajes: 11
Antigüedad: 14 años, 7 meses
Puntos: 0
APlicar el paginator.inc.php en un buscador

Hola amigos!!

Me gustaría que alguien me pudiera echar una mano para implementar el paginator.inc.php en un buscador propio.
Me explico:
Me he bajado el script paginator.inc.php para hacer una paginacion de los resultados de una busqueda.
Mi buscador es un tanto complejo, puesto que me busca en 3 tablas diferentes de la base de datos y luego puedo hacer un filtro por cada una de ellas.
EL caso es que el buscador me va de maravilla pero no logro implementar el paginador en este código, no me da error pero tampoco me saca ningún registro!!
SI alguien pudiera echarme una mano os lo agradeceria eternamente.
Dejo a continuación el código de mi buscador para que os hagais de una idea de como lo tengo.
Muchas gracias de antemano por vuestra ayuda:

<?
}

// esta funcion busca el texto definido por el array $q sobre la tabla definida por $numElemento,
// que se correspondera a un elemento del array $tablas
function dbSearch($numElemento)
{
// es necesario llamar a estas variables externas
global $q;
global $DBNAME, $link;
global $tablas, $paginas, $keys, $descs;
global $coincidencias;


// sacamos el numero de campos y los nombres ke tiene esa tabla
$result = mysql_db_query($DBNAME, "SELECT * FROM $tablas[$numElemento] WHERE 1", $link);
$num_fields = mysql_num_fields($result);
$fields = mysql_fetch_field($result);

?>

<?

// realizamos la consulta SQL y escribimos los resultados
$select = "SELECT *";
$from = "FROM $tablas[$numElemento]";
$where = "WHERE";

// construimos la clausula WHERE
for($word = 0; $word < count($q); $word++)
{
$where .= "(";
for($field=0; $field < $num_fields; $field++)
{
$where .= mysql_field_name($result, $field) . " LIKE '%$q[$word]%'";
if($field < $num_fields-1) $where .= " OR ";
}
$where .= ")";
if($word < count($q)-1) $where .= " AND ";
}

// construimos la consulta entera
//$_pagi_sql. AÑADO esta variable porque tiene que contenter el sql
$_pagi_sql = $select . " " . $from . " " . $where;
$result = mysql_db_query($DBNAME, $query, $link);

$_pagi_cuantos = 5;
$_pagi_nav_num_enlaces = 3;
$_pagi_mostrar_errores = true;
$_pagi_propagar = array("q","sec");

include("inc/paginator.inc.php");


if(mysql_num_rows($_pagi_result) > 0)
{
$coincidencias += mysql_num_rows($_pagi_result);

// imprimimos resultados
//for($row=0; $reg = mysql_fetch_array($result); $row++)
//{
for($row=0; $reg = mysql_fetch_array($_pagi_result); $row++){


// generamos todo el enlace
$desc = sprintf("%d",$descs[$numElemento]);

// acortamos la descripcion si sobrepasa de los 60 caracteres
if(strlen(nohtml($reg[$desc])) > 60) $desc = substr(nohtml($reg[$desc]), 0, 60) . "...";
else $desc = nohtml($reg[$desc]);

// valor y nombre del campo clave (id)
// (ver variable $keys, arriba)
$key = sprintf("%d",$keys[$numElemento]);
$key_name = mysql_field_name($_pagi_result, $key);




?>

<li class="nombre"><a href='<?=$paginas[$numElemento];?><?=$key_name;?>=<?=$reg[0];?><?=$posicion;?>'><?=$desc;?></a> <em class="<?=$tablas[$numElemento];?>"></em></li>

<?
}
}

?>

<? } ?>
</ol>
<ul id="paginacion">


<li><a href="buscador-localizaciones-guia.php?$q=<?=$_GET['q'];?>&sec=<?=$_GET['sec'];?>"</a><?=$_pagi_navegacion;?>
</li>

</ul>

Última edición por beutxita; 25/09/2009 a las 03:52 Razón: cambio de codigo