Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/10/2006, 09:42
LadyArwen
 
Fecha de Ingreso: agosto-2006
Mensajes: 91
Antigüedad: 17 años, 8 meses
Puntos: 0
resuelto un problema, ahora tengo otro.

bueno, pues poco a poco y rompiendome la cabeza, y con la ayuda de vosotros, voy resolviendo problemas.
el problema que tenía era que quería paginar por columnas, es decir, que los resultados me los diera en columnas y a su vez, me paginara. bien. esto lo he conseguido. os dejo el código pues seguro que a más de una (o uno) le vendrá bien:

conectamos con la base de datos:

****************
$link = mysql_connect("localhost", "user", "pass");
mysql_select_db("basededatos", $link);
*************
///////decimos los resultados que queremos por página:
***********
if (!isset($pag)) $pag = 1; // Por defecto, pagina 1
$result = mysql_query("SELECT COUNT(*) FROM tabla", $link);
list($total) = mysql_fetch_row($result);
$tampag = 3;
$reg1 = ($pag-1) * $tampag;
******************
///////hacemos la consulta y mostramos los resultados
**********************
$result = mysql_query("SELECT * FROM galeria LIMIT $reg1, $tampag", $link);
if (mysql_num_rows($result)){
echo "<table border = '1'> \n";
while ($row = @mysql_fetch_array($result)) {
echo "<tr><td>".$row["titulo"].
"<BR> <img alt=".$row["titulo"]." src=".$row['imagen']." width=150 height=80></td></tr> \n";
}
echo "</table> \n";
}
else
echo "¡ No se ha encontrado ningún registro !";
*******************
///////por último, metemos la función paginar
*******************
/************************************************** ****/
/* Funcion paginar
* actual: Pagina actual
* total: Total de registros
* por_pagina: Registros por pagina
* enlace: Texto del enlace
* Devuelve un texto que representa la paginacion
*/
function paginar($actual, $total, $por_pagina, $enlace) {
$total_paginas = ceil($total/$por_pagina);
$anterior = $actual - 1;
$posterior = $actual + 1;
if ($actual>1)
$texto = "<a href=\"$enlace$anterior\">&laquo;</a> ";
else
$texto = "<b>&laquo;</b> ";
for ($i=1; $i<$actual; $i++)
$texto .= "<a href=\"$enlace$i\">$i</a> ";
$texto .= "<b>$actual</b> ";
for ($i=$actual+1; $i<=$total_paginas; $i++)
$texto .= "<a href=\"$enlace$i\">$i</a> ";
if ($actual<$total_paginas)
$texto .= "<a href=\"$enlace$posterior\">&raquo;</a>";
else
$texto .= "<b>&raquo;</b>";
return $texto;
}

echo paginar($pag, $total, $tampag, "prueba.php?pag=");
************

bien. como digo, esto lo que hace es que muestra los resultados en columnas y como le he dicho que me muestre 3, pues cuando si yo tengo 6 imágenes en la base de datos, me aparece la paginación, con un enlace a la página dos para mostrar las otras 3 imágenes.
el tema está en que yo quiero que me aparezcan dos columnas en lugar de una. es decir, suponiendo que yo le diga que me muestre 3 y yo tenga 9 imágenes, me aparezcan en la página 1 dos columnas con tres imágenes cada una y las otras tres que quedan las mande a la página dos. no sé si me he explicado. por favor, a ver si ahora podéis ayudarme. cluster, anda, échame un cablecito. te lo agradecería...