Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/10/2006, 11:49
LadyArwen
 
Fecha de Ingreso: agosto-2006
Mensajes: 91
Antigüedad: 17 años, 8 meses
Puntos: 0
más duda con galeria de imágenes

muy buenas a todos otra vez. os cuento. tengo una base de datos llamada fotografias con tres campos: 'idfoto' que es autonumerico, 'nombre' que es varchar (255) y recoge un nombre de la foto y 'foto' que también es varchar (255) y recoge la ruta donde se guarda la foto que subo (normalmente fotos/nombre.jpg, pues las fotos se guardan en un directorio llamado 'fotos')

bien. resulta que después muestro las fotos en una tabla mediante una consulta, de tal modo que la tabla me muestra por página cuatro fotos distribuídas en dos columnas de dos filas con dos imágenes cada una. después de mucho probar, con la única forma que he podido conseguir eso es la siguiente:

///////////////
<table align="center"><tr><td class="text2">Haga click en la imagen para agrandar<BR><BR>
<?php
$link = mysql_connect("localhost", "user", "pass");
mysql_select_db("basededatos", $link);
if (!isset($pag)) $pag = 1; // Por defecto, pagina 1
$result = mysql_query("SELECT COUNT(*) FROM galeria", $link);
list($total) = mysql_fetch_row($result);
$tampag = 4;//número de resultados por página
$reg1 = ($pag-1) * $tampag;
$result = mysql_query("SELECT * FROM fotografias ORDER BY idfoto DESC LIMIT $reg1, $tampag", $link);

if (mysql_num_rows($result)){

$i = 1;
while ($row = @mysql_fetch_array($result)) {

if($i==2){//número de columnas por pagina
$align = "";
$i = 0;
}
else{
$align = "align='left'";
}

echo "<table $align border=1 bordercolor=#684522><tr><td class=text2 bgcolor=#FFFFCC ALIGN=center>".$row["nombre"]."<BR>
<a href=javascript:popup('popup.php?id=$row[idfoto]');><img alt=".$row["nombre"]." src=".$row[foto]." width=150 height=80 border=0></a></td></tr></table>";
$i++;
}

}
else
echo "<span class=text2>No hay novedades publicadas actualmente</span>";

/************************************************** ****/
/* 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 class=textenlace1 href=\"$enlace$anterior\">&laquo;</a> ";
else
$texto = "<b>&laquo;</b> ";
for ($i=1; $i<$actual; $i++)
$texto .= "<a class=textenlace1 href=\"$enlace$i\">$i</a> ";
$texto .= "<b>$actual</b> ";
for ($i=$actual+1; $i<=$total_paginas; $i++)
$texto .= "<a class=textenlace1 href=\"$enlace$i\">$i</a> ";
if ($actual<$total_paginas)
$texto .= "<a class=textenlace1 href=\"$enlace$posterior\">&raquo;</a>";
else
$texto .= "<b>&raquo;</b>";
return $texto;
}
?> </td></tr></table><DIV ALIGN="center">

<?php
echo paginar($pag, $total, $tampag, "novedades.php?pag="); ?></DIV>
///////////
bien como podeis ver tiene también para paginar.
el tema está en que quiero mostrar las fotografías en pequeño y en proporción a su tamaño original. actualmente obligo al navegador a mostrarlas a un tamaño 150x80 en pequeño. esto tiene el contratiempo de que cuando la imagen a mostrar es más alta que ancha, se desvirtua. cómo puedo hacer que aparezca en proporción? lo he probado todo lo que tenéis en el foro pero nada, no me va (o no sé o no soy capaz de adaptarlo a mis necesidades) por favor, un ayudita...