Foros del Web » Programando para Internet » PHP »

Error en paginador

Estas en el tema de Error en paginador en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 10/08/2005, 16:39
 
Fecha de Ingreso: diciembre-2003
Mensajes: 40
Antigüedad: 14 años
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 19:14
  #2 (permalink)  
Antiguo 10/08/2005, 19:16
 
Fecha de Ingreso: diciembre-2003
Mensajes: 40
Antigüedad: 14 años
Puntos: 0
Ya lo he arreglado

Al hacer la actualizacion (supongo) ya no servia ese sistema de pasar las variable.

He añadido en la Funcion Buscar $pg = $_GET['pg']; y asunto arreglado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:57.