Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/08/2005, 15:39
JuliusRisi
 
Fecha de Ingreso: diciembre-2003
Mensajes: 40
Antigüedad: 20 años, 4 meses
Puntos: 0
Error en paginador

Uso PhpNuke, pero me hice un modulo propio de tracks para GPS. La cuestiosn es que hasta hace bien poco todo funcionaba OK, hasta que he actualizado el PhpNuke y el paginador ha de jado de fincionas.

El paginado es practicamente igual a este:

http://www.miwebera.com/desarrollophp/article36.html

Algo mas complejo ya que uso mas variable, pero igual en funcionamiento.
La cuestion es que no me manda la ultima variable $pg, si me manda otras 4 que tengo delante, pero esta, me manda esta cadena ",, , l, 1, , /php/php.exe?name=Tracks&file=Buscar&palabra=l&tipobusc ar=1&pg=1 " en vez del numero de la PG.

Este es mi codigo:

function paginacion($pages, $palabra, $tipobuscar, $orden, $pg){
echo "<center>Nº de paginas <font face=\"Arial\" size=\"2\" color=\"#000080\"><b>$pages</b></font>: ";


if ($tipobuscar==6){
if ($pg != 0) {
$url = $pg - 1;
echo "<a href='modules.php?name=Tracks&amp;file=Buscar&tipo buscar=$tipobuscar&orden=$orden&pg=".$url."'>&laqu o; Anterior</a>&nbsp;";
} else {
echo " ";
}


for ($i = 0; $i < $pages; $i++) {
if ($i == $pg) {
$pgn=$pg+1;
echo "<b> $pgn </b>";
} else {
$pgn++;
echo "<a href=modules.php?name=Tracks&amp;file=Buscar&tipob uscar=$tipobuscar&orden=$orden&pg=".$i.">$pgn</a> ";
}
}
if ($pg < $pages-1) {
$url = $pg + 1;
echo "<a href='modules.php?name=Tracks&amp;file=Buscar&tipo buscar=$tipobuscar&orden=$orden&pg=".$url."'>Sigui ente &raquo;</a>";
} else {
echo " ";
}
echo " <hr noshade color=\"#800000\" size=\"1\">";

}else{
if ($pg != 0) {
$url = $pg - 1;

echo "<a href='modules.php?name=Tracks&amp;file=Buscar&pala bra=$palabra&tipobuscar=$tipobuscar&pg=".$url."'>& laquo; Anterior</a>&nbsp;";
} else {
echo " ";
}

for ($i = 0; $i < $pages; $i++) {
if ($i == $pg) {
$pgn=$pg+1;
echo "<b> $pgn </b>";
} else {
$pgn++;
echo "<a href=modules.php?name=Tracks&amp;file=Buscar&palab ra=$palabra&tipobuscar=$tipobuscar&pg=".$i.">$pgn</a> ";
}
}
if ($pg < $pages-1) {
$url = $pg + 1;
echo "<a href='modules.php?name=Tracks&amp;file=Buscar&pala bra=$palabra&tipobuscar=$tipobuscar&pg=".$url."'>S iguiente &raquo;</a>";
} else {
echo " ";
}
echo " <hr noshade color=\"#800000\" size=\"1\">";
}
}

Y parte del buscador:

function Buscar($palabra, $provincias1, $tipobuscar, $zonas, $cumbres, $autores, $orden, $desniveles, $distancias, $pg){
global $prefix, $db, $cookie, $user, $module_name, $user_prefix, $dbi, $viewbaseurl, $upbaseurl;
if (!isset($pg))$pg = 0; // $pg es la pagina actual
$cantidad=15; // cantidad de resultados por página
$inicial = $pg * $cantidad;
//echo "$inicial,$cantidad, $pages, $palabra, $tipobuscar, $orden, $pg";//para ver los valores solo pruebas

if (!isset($tipobuscar))$tipobuscar=1;
if ($tipobuscar==1){
if ($palabra=="") { // Check si se ha metido palabra alguna
include("headertrack1.php");
echo "<br>";
OpenTable();
echo "<center><b>No has seleccionado ninguna opción de busqueda, ni has tecleado nada en el formulario.</b><br><br>"
.""._GOBACK."";
CloseTable();
include("footer.php");
}
include("headertrack1.php");//si se ha metido busca en la base de datos

$sql = "SELECT * FROM tracklistsok where (";
$terms = explode(" ", $palabra); // $palabra seria el input de texto de la busqueda
for(@reset($terms); list(, $term) = @each($terms); $sql .= 'or ') {
$sql .= "upfilename LIKE '%$term%' ";
}

for(@reset($terms); list(, $term) = @each($terms); $sql .= 'or ') {
$sql .= "httpupfile LIKE '%$term%' ";
}

for(@reset($terms); list(, $term) = @each($terms); $sql .= 'or ') {
$sql .= "descr1 LIKE '%$term%' ";
}

for(@reset($terms); list(, $term) = @each($terms); $sql .= 'or ') {
$sql .= "cimas LIKE '%$term%' ";
}

for(@reset($terms); list(, $term) = @each($terms); $sql .= 'or ') {
$sql .= "zona LIKE '%$term%' ";
}

for(@reset($terms); list(, $term) = @each($terms); $sql .= 'or ') {
$sql .= "provincia LIKE '%$term%' ";
}

for(@reset($terms); list(, $term) = @each($terms); $sql .= 'or ') {
$sql .= "descr2 LIKE '%$term%' ";
}

$sql = substr($sql,0,-4); //quita el ultimo OR cuando hace todo el recorrido
$sql .=")"; //Lo añado para que cierre los parentesis despues de quitar el ultimo OR
$sql .= " GROUP BY id ORDER BY id ASC LIMIT $inicial,$cantidad" ;// donde id es algun campo autonumerico o que no se repita.
//echo "Resultador:<br>$sql"; //para que veas si sirve.. :si: sí sí.. aquí deverias continuar.. conectas y demás..
$sqlcuenta = "SELECT * FROM tracklistsok where (";
$terms = explode(" ", $palabra); // $palabra seria el input de texto de la busqueda
for(@reset($terms); list(, $term) = @each($terms); $sqlcuenta .= 'or ') {
$sqlcuenta .= "upfilename LIKE '%$term%' ";
}

for(@reset($terms); list(, $term) = @each($terms); $sqlcuenta .= 'or ') {
$sqlcuenta .= "httpupfile LIKE '%$term%' ";
}

for(@reset($terms); list(, $term) = @each($terms); $sqlcuenta .= 'or ') {
$sqlcuenta .= "descr1 LIKE '%$term%' ";
}

for(@reset($terms); list(, $term) = @each($terms); $sqlcuenta .= 'or ') {
$sqlcuenta .= "cimas LIKE '%$term%' ";
}

for(@reset($terms); list(, $term) = @each($terms); $sqlcuenta .= 'or ') {
$sqlcuenta .= "zona LIKE '%$term%' ";
}

for(@reset($terms); list(, $term) = @each($terms); $sqlcuenta .= 'or ') {
$sqlcuenta .= "provincia LIKE '%$term%' ";
}

for(@reset($terms); list(, $term) = @each($terms); $sqlcuenta .= 'or ') {
$sqlcuenta .= "descr2 LIKE '%$term%' ";
}

$sqlcuenta = substr($sqlcuenta,0,-4); //quita el ultimo OR cuando hace todo el recorrido
$sqlcuenta .=")"; //Lo añado para que cierre los parentesis despues de quitar el ultimo OR
$sqlcuenta .= " GROUP BY id ORDER BY id ASC" ;// donde id es algun campo autonumerico o que no se repita.
$resultcuenta = $db->sql_query($sqlcuenta);
$total_records = $db->sql_numrows($resultcuenta);
$pages = ceil($total_records / $cantidad);
$result = $db->sql_query($sql);
tablacabeza2($total_records, $palabra);
while ($row = $db->sql_fetchrow($result)) {
$idb = $row[id];
$httpupfileb = $row[httpupfile];
$tracknameb = eregi_replace( "/", " ",$row[trackname]);
$descr1b = eregi_replace( "/", " ",$row[descr1]);
$cimasb = eregi_replace( "/", " ",$row[cimas]);
$zonab = eregi_replace( "/", " ",$row[zona]);
$provinciab = eregi_replace( "/", " ",$row[provincia]);
//$tracknameb = eregi_replace( "$palabra", "<b><font color=\"#800000\">$palabra</font></b>",$tracknameb);
$descr1b = eregi_replace( "$palabra", "<b><font color=\"#800000\">$palabra</font></b>",$descr1b);
//$cimasb = eregi_replace( "$palabra", "<b><font color=\"#800000\">$palabra</font></b>",$cimasb);
//$zonab = eregi_replace( "$palabra", "<b><font color=\"#800000\">$palabra</font></b>",$zonab);
//$provinciab = eregi_replace( "$palabra", "<b><font color=\"#800000\">$palabra</font></b>",$provinciab);
$cimasb = $palabra;
$zonab = $palabra;
$provinciab = $palabra;
$date2b = $row[date2];
$upfilesizeb = $row[upfilesize];
$idautor1b = $row[idautor1];
$idautor2b = $row[idautor2];
$hitsb = $row[hits];
$trackb = $row[track];
$date1b = $row[date1];
$tiempob = $row[tiempo];
$tiempo2b = $row[tiempo2];
$kmb = $row[km];
$tipob = $row[tipo];
$desnib = $row[desni];
$cimasb = $row[cimas];
$zonab = $row[zona];
$provinciab = $row[provincia];
if($bgcolor == '#E8E8E3')$bgcolor = '#F5F5F5'; // para alternar colores
else $bgcolor = '#E8E8E3';
if ($idautor2b != 0){
$sqla = "SELECT nombre, email FROM trackautor where idautor=$idautor2b ";
$resulta = $db->sql_query($sqla);
list ($nombre, $email) = $db->sql_fetchrow($resulta);
$autor = $nombre;
$email = $email;
$anonimo="1";
}else{
$sqlb = "SELECT username, user_email FROM nuke_users where user_id=$idautor1b ";
$resultb = $db->sql_query($sqlb);
list ($username, $user_email) = $db->sql_fetchrow($resultb) ;
$autor = $username;
$email = $user_mail;

$anonimo="0";
}
if ($anonimo == 0){$nid=$idautor1b;}
if ($anonimo == 1){$nid=1;}
tablapeque($idb, $httpupfileb, $tracknameb, $descr1b, $cimasb, $zonab, $provinciab, $date2b, $date1b, $cimasb, $zonab, $provinciab, $tipob, $desnib, $kmb, $tiempob, $tiempo2b, $upfilesizeb, $autor, $email, $anonimo, $nid, $bgcolor, $trackb, $hitsb);
}
// Creando los enlaces de paginación
echo "<br> <center>*En caso de algun error, no se descarga el Track, no se ve bien el formulario, etc, enviad un e-mail: <a href=\"mailto:[email protected]?subject=Error en formulario simple\">Enviar email de ERROR</a></center><br>";

paginacion($pages,$palabra, $tipobuscar, $orden, $pg);
menu();
include("footer.php");
}//Fin opcion 1 - Manual


elseif ($tipobuscar==2){ // Busqueda por provincias

if (($provincias1=="" || $provincias1=="NULL") && $palabra==""){ //se el if de $palabra para evitar fallo de paginacion ya que envia solo $palabra
// Check si se ha metido palabra alguna
include("headertrack1.php");
echo "<br>";
OpenTable();
echo "<center><b>No has seleccionado ninguna opción de busqueda, ni has tecleado nada en el formulario.</b><br><br>"
.""._GOBACK."";
CloseTable();
include("footer.php");

}

Gracias

Última edición por JuliusRisi; 10/08/2005 a las 18:14