Estoy tratando de hacer un hibrido entre el codigo de paginator (jpinedo) y el codigo de las Faqs para columnar resultados.
Ambos por separado me funcionan perfecto, pero al unirlos "casi" funcionan...
Tengo una tabla llamada GALERIA con los campos ID, EVENTO, FECHA Y 12 CAMPOS DE FOTOS.
Uniendo los codigos como se los mostrare, me muetra dos paginas (correcto pues tengo 2 eventos) con su navegador siguiente, atras, etc. Cada pagina me muestra arriba el nombre del evento (perfecto, asi lo puse), debajo, perfectamente centradas, las 12 o menos fotos del evento en cuestion PERO no se ven, solo se muestra la famosa X roja encerrada en un cuadrito.
El codigo unido:
Código PHP:
<?
//establece una conexión con la base de datos.
$conexion = mysql_connect("localhost","root","") or die("No se pudo realizar la conexion con el servidor.");
mysql_select_db("xxxxxx",$conexion) or die("No se puede seleccionar BD");
$_pagi_sql="SELECT * FROM galeria ORDER BY evento";
$_pagi_result=mysql_query($_pagi_sql);
//cantidad de resultados por página (opcional, por defecto 20)
$_pagi_cuantos = 12;
//cantidad de enlaces que se mostrarán como máximo en la barra de navegación
$_pagi_nav_num_enlaces = 10;//Elegí un número pequeño para que se note el resultado
//Definimos qué estilo CSS se utilizará para los enlaces de paginación.
//El estilo debe estar definido previamente
$_pagi_nav_estilo = "paginator";
//Incluimos el script de paginación. Éste ya ejecuta la consulta automáticamente
include("paginator.inc.php");
//Leemos y escribimos los registros de la página actual
while($row = mysql_fetch_array($_pagi_result)){
echo "<table align=center>";
$columnes = 4; # Número de columnas (variable)
if (($rows=mysql_num_rows($_pagi_result))==0) {
echo "<tr><td colspan=$columnes>No hay fotos en la base de datos.</td></tr> ";
} else {
echo "<tr><td align=center colspan=$columnes>$row[evento]</td></tr>";
}
for ($i=1; $row = mysql_fetch_row ($_pagi_result); $i++) {
$resto = ($i % $columnes); # Número de celda del <tr> en que nos encontramos
if ($resto == 1) {echo "<tr>";} # Si es la primera celda, abrimos <tr>
echo "<td height=170 align=center valign=middle><img src=\"thumbs_galeria.php?id=$row[id]\"><br>";
echo "<a href='erase_galeria.php?id=".$row[id]."'>Borrar Foto</a><br>";
if ($resto == 0) {echo "</tr>";} # Si es la última celda, cerramos </tr>
}
if ($resto <> 0) { # Si el resultado no es múltiple de $columnes acabamos de rellenar los huecos
$ajust = $columnes - $resto; # Número de huecos necesarios
for ($j = 0; $j < $ajust; $j++) {echo "<td> </td>";}
echo "</tr>"; # Cerramos la última línea </tr>
}
mysql_close($conexion);
echo "</table>";
}
//Incluimos la barra de navegación
if($_pagi_totalPags > 1){
echo"<p align=center>".$_pagi_navegacion."</p>";
}
?>
Código PHP:
<?php
if(isset($_GET['id'])) {
$conexion=mysql_connect("localhost","root","") or die ("no se ha podido conectar a la BD");
mysql_select_db("xxxxxx") or die ("no se ha podido seleccionar la BD");
$sql = "SELECT archivo_binario,archivo_tipo,archivo_nombre FROM galeria WHERE id='".$_GET['id']."'";
$consulta = mysql_query($sql,$conexion);
$imagen = mysql_result($consulta,0,"archivo_binario");
$type = mysql_result($consulta,0,"archivo_tipo");
// Envio cabeceras al navegador
Header ("Content-type: $type");
// Generar el thumbnail:
// Se crea la imagen desde el campo binario de la BD
$img = imagecreatefromstring($imagen);
// Tamaño del Thumbnail
$picsize = 150;
// Se obtienen los datos del ancho y alto de la imagen.
$new_w = imagesx($img);
$new_h = imagesy($img);
// Se calcula la relación alto/ancho
$aspect_ratio = $new_h / $new_w;
// Se ajusta al nuevo tamaño
$new_w = $picsize;
$new_h = abs($new_w * $aspect_ratio);
// Se crea la mascara de la imagen nueva
$dst_img = ImageCreateTrueColor($new_w,$new_h);
// Se copia y reajusta el nuevo tamaño en la nueva imagen.
imagecopyresampled($dst_img,$img,0,0,0,0,$new_w,$new_h,imagesx($img),imagesy($img));
// Se entrega al buffer de salida (navegador en este caso) la imagen en formato JPEG
// El tercer parámetro (100) indica la calidad de la imagen: en porcentaje relación calidad/peso imagen.
imagejpeg($dst_img,'',100);
}
?>
Otro detalle... si notan en los echo, hay un enlace a 'erase_galeria.php?id=".$row[id]."' que va debajo de cada foto y debe tomar el ID de la misma para luego borrarla.
Si utilizo los codigos por separado, me borra perfecto pero en este caso, al pasar el mouse sobre cada enlace de borrar, me muestra esto en la bara de estado del navegador:
erase_galeria.php?id=
O sea, no me toma el ID