1
« en: Domingo 18 de Noviembre de 2007, 22:52 »
hola a todos
a ver
el problema en concreto es que quiero paginar los temas y las consultas del foro
la pagina principal tiene este codigo
<?php
require('configuracion.php');
require('funciones.php ');
include('header.html');
aqui tenemos una parte que nos cuenta el numero de pagina segun las consultas introducidas
if (!isset($pag)) $pag = 1; // Por defecto, pagina 1
$result = mysql_query("SELECT COUNT(*) FROM foro", $con);
list($total) = mysql_fetch_row($result);
$tampag = 3;
$reg1 = ($pag-1) * $tampag;
aqui tenemos una consulta de seleccion de lo que queremos que nos muestre en pantalla
/* Pedimos todos los temas iniciales (identificador==0)
* y los ordenamos por ult_respuesta */
$sql = "SELECT id, autor, titulo, fecha, respuestas, ult_respuesta ";
$sql.= "FROM foro WHERE identificador=0 ORDER BY ult_respuesta DESC";
$rs = mysql_query($sql, $con);
Aqui tenemos otra consulta , es la misma que la anterior pero con los limites por pagina que queremos que nos aparezca. Realmente la anterior no nos hace falta
pero me sirve de referencia.
$result = mysql_query("SELECT id, autor, titulo, fecha, respuestas, ult_respuesta FROM foro WHERE identificador=0 ORDER BY ult_respuesta DESC LIMIT $reg1, $tampag", $con);
He aqui donde tengo el problema
Si aplico la variable $rs me muestra todos los resultos sin paginar ninguno
pero si por lo contrario aplico la variable $result solo me muestra la primera cantidad de resultados, pero no la siguiente si pico en la pagina 2
Si aplico en el primer if la variable $rs , igualmente solo me muestra los resultados de bucle While que hay mas abajo.
es este trozo de codigo es donde aplico las diferentes plantillas y el while de $result lo hace bien, pero NO SE COMO HACER QUE APARENZCAN LAS OTRAS CONSULTAS EN LAS OTRAS PAGINAS.
if(mysql_num_rows($result)>0)
{
// Leemos el contenido de la plantilla de temas
$template = implode("", file("temas.html"));
include('titulos.html');
while($row = mysql_fetch_assoc($result))
{
$color=($color==""?"#fcce8e":"");
$row["color"] = $color;
mostrarTemplate($template, $row);
}
}
Aqui llamamos a la funcion que nos muestra el resultado de las paginas (ejemplo <<1 2 3 >>)
esto funciona bien
echo paginar($pag, $total, $tampag, "indexforo.php?pag=");
include(' footer.html');
?>