Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/12/2004, 12:12
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 21 años, 2 meses
Puntos: 0
Me lío con los thumbnails

Soy novato en php y estoy haciendo mis primeros pinitos, creo un formulario en el que puedo meter una referencia, cuatro fotos y un comentario, a modo de como si fuese un articulo de un catalogo, vale hasta ahí bien, me subo las fotos y los datos a la base de datos, el caso es que las fotos que se van a subir van a estar siempre a una resolución muy alta, 1200 X no sé cuanto y yo quiero trabajar con ellas por ejemplo en 400X lo que corresponda, pero a su vez cuando muestre los datos de un articulo voy a necesitar que me salgan abajo unas miniaturas pongamos de 120X120 y al pinchar en ellas me salga en la misma hoja en un apartado la grande que sería la de 400X lo que sea, osea la original de 1200X lo que sea no se necesita para nada, el caso es que estoy liado con los thumbnails y no sé como trabajar con ellos, a ver si alguien puede explicarme un poco como lo puedo hacer, se que va a ser un coñazo pero os pongo los codigos que uso

En el siguiente codigo pongo el formulario y la consulta todo a la vez para no liar, es decir en la misma pagina subo y veo pero claro veo la grande 1200 que no quiero entonces ahí debería de trabajar ya con las miniaturas de 120 y las de 400 al pinchar sobre ellas.

la pagina se llamaría pisos_alquiler.php

<FORM enctype="multipart/form-data" method="post" action="subir.php">
<p align="center"><font size="5">Archivo de imagenes</font><br>
Código PHP:
   <?php 
if ($_GET['s']!="")
    echo 
"<font color='#FF0000'>Se ha guardado la imagen</font>";
?>
</p>
<p align="center">Referencia
<input name="referencia" type="text" id="referencia" size="40" maxlength="50">
Fecha
<input name="fecha" type="text" id="fecha">
<br>
<INPUT type="file" name="userfile" size="30">
foto 1</p>
<p align="center">
<input name="userfile2" type="file" id="userfile2">
foto 2</p>
<p align="center">
<input name="userfile3" type="file" id="userfile3">
foto 3 </p>
<p align="center">
<input name="userfile4" type="file" id="userfile4">
foto 4
</p>
<p align="center">descripcion
<textarea name="descripcion" cols="50" rows="15" id="descripcion"></textarea>
<br>
<INPUT type="submit" name="submit" value="Subir archivo">
</p>
</FORM>
Código PHP:
<?php 
mysql_connect
("localhost","root","") or die ("no se ha podido conectar a la BD"); 
mysql_select_db("inmobiliaria") or die ("no se ha podido seleccionar la BD"); 
$id=$_GET['id'];
if (
$id!="")
{
    
$sql "SELECT * FROM pisos_venta WHERE ID<=".$id." ORDER BY ID DESC";
}
else
{
    
$sql "SELECT * FROM pisos_venta ORDER BY ID DESC";
}
$consulta mysql_query($sql) or die ("No se pudo ejecutar la consulta"); 
$i=0;
echo 
"<center>";
While ((
$i<5) and $registro=mysql_fetch_assoc($consulta)  )

    echo 
"<b>".$registro['referencia']."</b><br>";
    echo 
"<b>".$registro['fecha']."</b><br>";
    echo 
"<br>".$registro['descripcion']."<br><br>"
    echo 
"<img src='".$registro['imagen1']."'><br><br>"
    echo 
"<img src='".$registro['imagen2']."'><br><br>";
    echo 
"<img src='".$registro['imagen3']."'><br><br>";
    echo 
"<img src='".$registro['imagen4']."'><br><br>";
    
    
$i=$i 1;
}
$registro_tmp=$registro=mysql_fetch_assoc($consulta);
if (
$id!="")
{
    
$sql "SELECT * FROM pisos_venta WHERE ID>".$id." ORDER BY ID asc";
    
$consulta mysql_query($sql) or die ("No se pudo ejecutar la consulta"); 
    
$i=0;
    While ((
$i<100) and $registro=mysql_fetch_assoc($consulta)  )
    { 
        
$id=$registro['id'];
        
$i=$i+1;
        
$entraEnElBucle="si";
    }
    if (
$entraEnElBucle!="")
        echo 
"<a href='imagenes.php?id=".($id)."'>Pagina Anterior &nbsp;&nbsp;&nbsp;</a>";

if (
$registro_tmp)
{
    echo 
"<a href='imagenes.php?id=".$registro_tmp['id']."'> Siguiente Pagina</a>";


?>
El siguiente codigo me sube los datos a la bd

la página se llama subir.php
Código PHP:
<? 
$nombre_archivo 
$_FILES['userfile']['name']; 
$nombre_archivo2 $_FILES['userfile2']['name']; 
$nombre_archivo3 $_FILES['userfile3']['name'];
$nombre_archivo4 $_FILES['userfile4']['name'];
$tipo_archivo $_FILES['userfile']['type']; 
$tamano_archivo $_FILES['userfile']['size']; 
//compruebo si las características del archivo son las que deseo 
if (!((strpos($tipo_archivo"gif") || strpos($tipo_archivo"jpeg")) && ($tamano_archivo 1000000))) { 
    echo 
"La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 1Mb máximo.</td></tr></table>"
}else{ 
    if (
move_uploaded_file($_FILES['userfile']['tmp_name'], "temporal/".$nombre_archivo))
    if (
move_uploaded_file($_FILES['userfile2']['tmp_name'], "temporal/".$nombre_archivo2))
    if (
move_uploaded_file($_FILES['userfile3']['tmp_name'], "temporal/".$nombre_archivo3))
    if (
move_uploaded_file($_FILES['userfile4']['tmp_name'], "temporal/".$nombre_archivo4)){ 
       echo 
"El archivo ha sido cargado correctamente en"."temporal/".$nombre_archivo


$conexion mysql_connect("localhost","root","") or die("No se pudo realizar la conexion con el servidor."); 
mysql_select_db("inmobiliaria",$conexion) or die("No se puede seleccionar BD"); // tu_bd es el nombre de la Base de datos .. por siaca. 

//insertamos los datos en la BD. 
$consulta_insertar "INSERT INTO pisos_venta (id, referencia,fecha,imagen1,imagen2,imagen3,imagen4,descripcion) VALUES ('', '".$_POST['referencia']."','".$_POST['fecha']."','temporal/$nombre_archivo','temporal/$nombre_archivo2','temporal/$nombre_archivo3','temporal/$nombre_archivo4','".$_POST['descripcion']."')"
echo 
$consulta_insertar;
mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos."); 
header("location: imagenes.php?s=1"); // si ha ido todo bien 
exit; 



    }else{ 
       echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse."
    } 

?>
Entonces ahora por ejemplo para que las imagenes que me metió en la carpeta temporal no sean las grandes de 1200X lo que sea sinó que ya sean las miniaturas o mejor dicho las de 400X lo que sea las que me muestre así como que cuando haga una consulta acerca de un producto me saque las minis de 120X lo que sea, no me aclaro con los ejemplos que poneis aquí para los thumbnails porque no sé como decirle el nombre de la foto con la que tiene que trabajar en el momento de hacer esa consulta, ni la dirección a un articulo determinado y si lo hay que hacer para todos ya que se van a ir subiendo todos los días articulos o productos como lo quieras llamar y mostrando luego sus caracteristica. No sé a ver si alguien me puede orientar, recordar que estoy empezando con esto y no tengo muy claro todavía como hacer referencia a las cosas, venga lo dicho si hay alguien que me heche un cable se lo agradecería un montón, salu2 y gracias de antemano