Hola:
Tengo una serie de codigos de aqui mismo quizas modificados un poco, que siempre me han funcionado pero ahora no. Pido por favor alguien encuentre algun error porque mi vista ya no da mas...
Tengo una pagina depilacion.php que debe mostrar unas miniaturas con el nombre del producto debajo, en 4 columnas y 2 filas. Muestra el nombre pero no las miniaturas (el server tiene bien las GD)
Código PHP:
<?
include ("config.php");
$sql="SELECT * FROM depilacion";
$result=mysql_query($sql);
$numeroRegistros=mysql_num_rows($result);
if($numeroRegistros<=0)
{
$existeregistro = 0;
echo "<div align='center'>";
echo "<font face='verdana' class='bottom'>No tenemos actualmente productos en ésta categoría</font>";
echo "</div>";
}else{
//////////calculo de elementos necesarios para paginacion
//tamaño de la pagina
$existeregistro = 1;
$tamPag=8;
$columnes=4; // Numero de columnas (variable)
//pagina actual si no esta definida y limites
if(!isset($_GET["pagina"]))
{
$pagina=1;
$inicio=1;
$final=$tamPag;
}else{
$pagina = $_GET["pagina"];
}
//calculo del limite inferior
$limitInf=($pagina-1)*$tamPag;
//calculo del numero de paginas
$numPags=ceil($numeroRegistros/$tamPag);
if(!isset($pagina))
{
$pagina=1;
$inicio=1;
$final=$tamPag;
}else{
$seccionActual=intval(($pagina-1)/$tamPag);
$inicio=($seccionActual*$tamPag)+1;
if($pagina<$numPags)
{
$final=$inicio+$tamPag-1;
}else{
$final=$numPags;
}
if ($final>$numPags){
$final=$numPags;
}
}
}
//////////fin de dicho calculo
mysql_free_result($result);
?>
<?
//////////creacion de la consulta con limites
$sql2="SELECT * FROM depilacion ORDER BY nombre LIMIT ".$limitInf.",".$tamPag;
$result2=mysql_query($sql2);
//////////fin consulta con limites
if ($existeregistro ==1)
{
echo "<table align=center border=0 cellpadding=0 width=471>";
for ($i=1; $row = mysql_fetch_array ($result2); $i++) {
$resto = ($i % $columnes); # Numero de celda del <tr> en que nos encontramos
if ($resto == 1) {echo "<tr>";} # Si es la primera celda, abrimos <tr>
echo "<td valign=bottom><div align=center><a href='detalles_depilacion.php?id=$row[id]'><img src=\"thumbs_depilacion.php?id=$row[id]\" border=0></a><br>";
echo "<font face='verdana' class='bottom'>".$row[nombre]."</font><br><br><br>";
if ($resto == 0) {echo "</tr>";} # Si es la ultima celda, cerramos </tr>
}
if ($resto <> 0) { # Si el resultado no es multiple de $columnes acabamos de rellenar los huecos
$ajust = $columnes - $resto; # Numero de huecos necesarios
for ($j = 0; $j < $ajust; $j++) {echo "<td> </td>";}
echo "</tr>"; # Cerramos la ultima linea </tr>
}
echo "</table><br><br>";
}
//mysql_free_result($result2);
//////////a partir de aqui viene la paginacion
if($pagina>1)
{
echo "<a href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina-1)."'>";
echo "<font face='verdana'>Anterior</font>";
echo "</a> ";
}
for($i=$inicio;$i<=$final;$i++)
{
if($i==$pagina)
{
echo "<font face='verdana'><b>".$i."</b> </font>";
}else{
echo "<a href='".$_SERVER["PHP_SELF"]."?pagina=".$i."'>";
echo "<font face='verdana'>".$i."</font></a> ";
}
}
if($pagina<$numPags)
{
echo " <a href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina+1)."'>";
echo "<font face='verdana'>Siguiente</font></a>";
}
//////////fin de la paginacion
?>
Este es thumbs_depilacion.php para generar las miniaturas
Código PHP:
<?php
if(isset($_GET['id'])) {
include ("config.php");
$sql = "SELECT archivo_binario,archivo_tipo,archivo_nombre FROM depilacion 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 = 100;
// 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);
}
?>
Esta es detalles_depilacion.php donde, al hacer click en la miniatura, debe mostrar la imagen algo mas grande con descripcion adicional
Código PHP:
<?
include ("config.php");
if (isset($_POST['id'])){
$sSQL="SELECT * FROM depilacion WHERE ref='".$_POST['id']."'";
$result=mysql_query($sSQL);
$row=mysql_fetch_array($result);
}
echo "<td valign=top><div align=center><img src=\"big_depilacion.php?id=$row[id]\" border=0></a><br>";
echo "<font face='verdana' class='bottom'>".$row[descripcion]."<br><br><br>";
?>
Esta es big_depilacion.php, la misma para las miniaturas pero un poco mas grande para la pagina de detalles
Código PHP:
<?php
if(isset($_GET['id'])) {
include ("config.php");
$sql = "SELECT archivo_binario,archivo_tipo,archivo_nombre FROM depilacion 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 = 300;
// 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);
}
?>
Alguien ve algun error que impida me muestre las imagenes? me sale el famoso cuadrito con la X sobre el nombre del producto y, al clickear para ver mas grande y texto detallado, no muestra ni la mini ni el texto del campo descripcion