Avatar Image
Usuario habitual
Usuario habitual

Cuál sería el código para que en un foro con php y mysql en el que se muestran los 10 últimos mensajes "LIMIT (0,10)", se crearan números según aumenten los grupos de 10 mensajes, con el acceso correspondiente a ellos.
Por ejemplo, que cuando tenga 11 mensajes, se vea abajo, un 1 y un 2, el 1 comunicaría con los 10 primeros mensajes, y el 2 con el mensaje 11 (Igual que ocurre en los foros de miarroba)
Espero haberme explicado con suficiente claridad

Avatar Image
Okupa del foro
Okupa del foro

el SQL:

SELECT * FROM mensajes ORDER BY id DESC LIMIT 0,10

pero no se si es DESC o ASC
los dos hacen el contrario... bye.

Avatar Image
Usuario habitual
Usuario habitual
Escrito originalmente por ivanitoweb
el SQL:

SELECT * FROM mensajes ORDER BY id DESC LIMIT 0,10

pero no se si es DESC o ASC
los dos hacen el contrario... bye.


Lo que quiero yo es que se creen accesos en el php, a cada grupo de mensajes (que se cree un 1 para los 10 últimos, un 2 para ver del 10 siguientes...).
Yo ya sé cómo hacer que se muestren sólo 10, pero lo que quiero es que el php automáticamente me haga un vínculo a los grupos (que no tenga yo que ir haciendo una página para cada 10)
Avatar Image
Usuario habitual
Usuario habitual

Me puede contestar alguien?
Gracias

Avatar Image
Okupa del foro
Okupa del foro

Eso es el nuevo código:

Codigo:
$inicio = $_GET['inicio'];
$docActual = $_SERVER['PHPSELF'];
if((!isset($inicio)) OR (empty($inicio))){
$inicio = "0";
}

mysql_query("SELECT * FROM mensajes ORDER BY id DESC LIMIT " . $inicio . ",10");

//Listamiento....
$nuevoinicio = $inicio + "10";
echo "<a href=\"" . $docActual . "?inicio=" . $nuevoinicio . "\">10 Siguientes</a>



Esto es todo... Bye. espero que te funcione...
Avatar Image
Usuario habitual
Usuario habitual

Gracias ivanito, sí que me funciona, pero esto presenta un problema: cuando haces click demasiadas veces e intentas acceder a mensajes que no hay, no se muestran claro. Además el usuario para volver a ver los mensajes anteriores tiene que hacer click en atrás, o en algún vínculo que tenga que hacer.

Por eso insisto en salir del paso con números, que sirvan de enlace (y que se cren sólos), así si sólo hay 11 mensajes se mostraría un 1 y un 2, el 1 para ver los 10 primeros y el 2 para ver el 11.

¿Alguien me puede ayudar?

Avatar Image
Okupa del foro
Okupa del foro

Claro. ara te lo pongo de nuevo:

$inicio = $_GET['inicio'];
$docActual = $_SERVER['PHPSELF'];
if((!isset($inicio)) OR (empty($inicio))){ $inicio = "0";
}
$ssql = "SELECT * FROM mensajes ORDER BY id DESC LIMIT " . $inicio . ",10";
//Listamiento....
mysql_query($ssql);
$nuevoinicio = $inicio + "10";
$totalrows = mysql_num_rows($ssql);
if($nuevoinicio => $totalrows){
echo "No más páginas<br>";
}else{
echo "<a href="" . $docActual . "?inicio=" . $nuevoinicio . "">10 Siguientes</a>
}

Bye.

Avatar Image
Usuario habitual
Usuario habitual

Así no me iba bien, al final lo he sacao yo (si hubiera sabido antes cómo se sabía las filas de la tabla...)
Dejo el código por si alguno lo necesita:

Al principio

Codigo:

<?
include("config.php") ;//el archivo de conexión a la bd

$inicio = $_GET['inicio'];
$docActual = $_SERVER['PHPSELF'];
if((!isset($inicio)) OR (empty($inicio))){
$inicio = "0";
}
$resp = mysql_query("SELECT * FROM libro ORDER BY fecha DESC LIMIT " . $inicio . ",10");
$totalrows = mysql_num_rows($resp);
while($datos = mysql_fetch_array($resp)) {
$fecha = ($datos[fecha]) ;
?>

Ahora iría lo que queremos mostrar de cada mensaje (la forma es libre):
Codigo:

<?
echo "<u>$datos[nombre]</u>";
echo $fecha;
echo $datos[mensaje];
echo "<br>";
?>

Y para finalizar, el listamiento:
Codigo:

<?
//Listamiento....
$nuevoinicio = $inicio + "10";

if($totalrows/"10" >= "1")
{
echo "<center><font color='#0000FF'><a href=\"" . $docActual . "?inicio=" . $nuevoinicio . "\">10 Siguientes</a></center></font>";
}
else
{
echo "<center>No más mensajes<br></center>";
}
?>

Avatar Image
Okupa del foro
Okupa del foro

Bién, si te funciona ya esta...
Bye.

Avatar Image
Usuario habitual
Usuario habitual

Me he quedado con la incertidumbre de saber cómo sería el acceso a las páginas (10 mensajes por página) mediante numeritos.
Algún experto que sepa cómo se hace ésto?
(mi alternativa no me acaba de gustar)

Avatar Image
Okupa del foro
Okupa del foro

Pues igual, no?
Explicate bién, si es necesario enseña tucódigo, que yo te ayudo.

Avatar Image
Usuario habitual
Usuario habitual

Al final lo he sacado, pero me parte de 0, y aunque parezca una tontería no se me ocurre cómo hacer que parta de 1 (será que tanto rato con php atonta)
¿Cómo sería para que partiera de 1?
He aquí el código:
1ª parte:

Codigo:

<?
include("config.php") ;//archivo de conexión a la bd

$inicio = $_GET['pag']*"10";
$pag = $_GET['inicio']/"10";


$docActual = $_SERVER['PHPSELF'];
if((!isset($inicio)) OR (empty($inicio))){
$inicio = "0";
}
$resp = mysql_query("SELECT * FROM libro ORDER BY fecha DESC LIMIT " . $inicio . ",10");
$totalrows = mysql_num_rows($resp);
while($datos = mysql_fetch_array($resp)) {
$fecha = ($datos[fecha]) ;
?>

Parte para que se muestre en pantalla
Codigo:

<?
echo "<u>$datos[nombre]</u>";
echo $fecha;
echo $datos[mensaje];
echo "<br>";
?>

Y el final (aquí es dónde habrá que cambiarlo supongo)
Codigo:

<?
//Listamiento....
$nuevoinicio = $inicio + "10";
$mensajesporpagina = "10";
$totalpaginas=$totalrows/$mensajesporpagina;

if($totalrows%$mensajesporpagina!=0)
++$totalpaginas ;


for($i="0";$i<=$totalpaginas;++$i){


echo "<a href='libro.php?pag=".$i."'>".$i."</a> ";
}
?>
Avatar Image
Okupa del foro
Okupa del foro

Cambia esto:

Codigo:
<?
include("config.php") ;//archivo de conexión a la bd

$inicio = $_GET['pag'];
if((!isset($inicio)) OR (empty($inicio))){
$inicio = "1";
}else{
$inicio = $inicio*"10";
}

$pag = $_GET['inicio']/"10";


$docActual = $_SERVER['PHPSELF'];
if((!isset($inicio)) OR (empty($inicio))){
$inicio = "0";
}
$resp = mysql_query("SELECT * FROM libro ORDER BY fecha DESC LIMIT " . $inicio . ",10");
$totalrows = mysql_num_rows($resp);
while($datos = mysql_fetch_array($resp)) {
$fecha = ($datos[fecha]) ;
?>


Bye.
Edición: KITADOS SMYLEIS
Avatar Image
Usuario habitual
Usuario habitual

No, no, así lo único que parte de 1 es el listado de mensajes, que el primero no aparece.


Lo que quiero yo es que la numeración de las páginas no parta de 0
ejemplo: 0 1 2

Sino que parta de 1
ejemplo: 1 2 3 (sólo la apariencia, seguiría yendo a la página 0,1,2, ya que en programación se parte de 0)

Avatar Image
Okupa del foro
Okupa del foro

Bueno, una cosa chorra, pero te va a funcionar:

<?
//Listamiento....
$nuevoinicio = $inicio + "10";
$mensajesporpagina = "10";
$totalpaginas=$totalrows/$mensajesporpagina;
$totalpaginas=$totalpaginas + "1";

if($totalrows%$mensajesporpagina!=0)
++$totalpaginas ;


for($i="1";$i<=$totalpaginas;++$i){


echo "<a href='libro.php?pag=".$i."'>".$i."</a> ";
}
?>

Avatar Image
Usuario habitual
Usuario habitual

Si que empieza apareciendo a partir de 1, lo malo es que los accesos entonces van mal, puesto que la número 1 vincula a la 1 (en realidad la 2ª) y el número 2 vincula a algo que no hay (es como si fuera 3, habiendo sólo 2 páginas), vamos que esto es una chapuza.
Por favor, que alguien me ayude, que me empiezo a desesperar.

Avatar Image
Okupa del foro
Okupa del foro

Bueno, usa un while, con un cod más:

<?
//Listamiento....
$nuevoinicio = $inicio + "10";
$mensajesporpagina = "10";
$totalpaginas=$totalrows/$mensajesporpagina;
$totalpaginas=$totalpaginas + "1";

if($totalrows%$mensajesporpagina!=0)
++$totalpaginas ;

$i="1";
$lnk="0";
while($i<=$totalpaginas){
echo "<a href='libro.php?pag=".$lnk ."'>".$i."</a> ";
$i++;
$lnk++;
}
?>
Bye!

Avatar Image
Usuario habitual
Usuario habitual

Perfecto

Muchas gracias

Avatar Image
Okupa del foro
Okupa del foro

Bueno, pues de nada, bye!

Avatar Image
Usuario habitual
Usuario habitual

Buenas noches, tras varios días pensando que por fin el mini-foro estaba terminado:

Pequeño gran problema, no se me muestra la última página.
Solución???

Avatar Image
Usuario habitual
Usuario habitual

Buah, no se qué pasaba, pero ya está arreglado, eso sí, tengo el problema de poder pasar la página en el "href" a el index que se sirve de includes.
Es decir, algo como:

echo "<a href='indexfelix.php?pagina=foro?pag=".$lnk ."'>".$i."</a> ";

claro, que así no funciona
Alguna propuesta???????

Avatar Image
Okupa del foro
Okupa del foro

Si, haver, POR GET nopuedes pasar MAS VARIABLES GET, lo entiendes?
que deberias hacer?
pues que la home linkeara directamente, o sessiones, o cookies, pues tienes muchas maneras de hacerlo!

Bueno, dime tu opinion bye

Avatar Image
Usuario habitual
Usuario habitual

Ya ya, me di cuenta ayer.

Lo he hecho pasando variables por get en el home.

Avatar Image
Okupa del foro
Okupa del foro

Entonces, todo arreglado no?
jeje
bye

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
TemaUsuariosRespuestasVisitasActividad
Por: , el 24/May/2009, 15:24
ligoverto NoSetup.org32kMay/09
Por: User 6780457, el 13/Feb/2010, 10:13
User 6780457 NoSetup.org iblancasa32kFeb/10