Foros del Web » Programando para Internet » PHP »

(Ayuda) subir imagenes a una carpeta y links a base de datos

Estas en el tema de (Ayuda) subir imagenes a una carpeta y links a base de datos en el foro de PHP en Foros del Web. Hola, Necesito hacer una galeria de imagenes. Tengo que subir a la base de datos: Titulo, descripcion, url, imagen1, imagen2, imagen3. Se hacer un post ...
  #1 (permalink)  
Antiguo 13/12/2010, 00:16
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 1 mes
Puntos: 21
(Ayuda) subir imagenes a una carpeta y links a base de datos

Hola,

Necesito hacer una galeria de imagenes.

Tengo que subir a la base de datos:
Titulo, descripcion, url, imagen1, imagen2, imagen3.

Se hacer un post con titulo, descripcion y url (todo texto),
pero como subo las imagenes a una carpeta y a su vez que quede un link en mysql para despues hacer la impresion en cualquier pagina.

este es mi formulario:

Código HTML:
<FORM enctype="multipart/form-data" method="post" action="guardar.php">

<input type="text" value="Título" name="title" onfocus="if (this.value == 'Título') this.value = ''"onblur="if (this.value == '') this.value = 'Título'" />

<input type="text" value="URL" name="url" onfocus="if (this.value == 'URL') this.value = ''"onblur="if (this.value == '') this.value = 'URL'" />

<textarea name="descripcion" onBlur="textArea_blur(this,this.defaultValue)" onFocus="textArea_focus(this,this.defaultValue)">Descripción</textarea>

<span>Identidad</span>
<INPUT type="file" name="imagen" size="30">

<span>Web</span>
<INPUT type="file" name="imagen" size="30">

<INPUT type="submit" name="submit" value="Cargar">
</FORM> 
esta es mi base de datos:

Código PHP:
CREATE TABLE IF NOT EXISTS `imagenes` (
  `
idint(11NOT NULL AUTO_INCREMENT,
  `
titlevarchar(255NOT NULL,
  `
descriptiontext NOT NULL,
  `
urlvarchar(255NOT NULL,
  `
identidadmediumblob NOT NULL,
  `
webmediumblob NOT NULL,
  `
pesovarchar(15NOT NULL,
  `
extensionvarchar(25NOT NULL,
  `
createddate NOT NULL,
  `
modifieddate NOT NULL,
  
PRIMARY KEY (`id`)
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=

Gracias,
Saludos.
  #2 (permalink)  
Antiguo 13/12/2010, 02:23
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: (Ayuda) subir imagenes a una carpeta y links a base de datos

Tenes que dejar el codigo php de guardar.php

pero debes tener alguna variable que imprima la url del archivo
  #3 (permalink)  
Antiguo 13/12/2010, 03:14
 
Fecha de Ingreso: mayo-2008
Mensajes: 117
Antigüedad: 15 años, 11 meses
Puntos: 8
Respuesta: (Ayuda) subir imagenes a una carpeta y links a base de datos

Bueno pues puedes hacerlo de varias formas,
Lo primero te recomendaria que creases otra tabla para las imagenes ...
algo parecido a esto...
Código PHP:
create table posts 
(id_posts integer auto_increment not null,
varchar nombre(50not null,
articulo text not null,
pripary key(id))Enginne=InnoDB;

create talbe img 
(id_img integer not null auto_increment,
id_posts integer not null,
url varchar(30not null,
primary key(id_img),
  
constraint fk_posts_img foreign key (id_postsreferences posts(id_posts)
  
on delete cascade
  on update cascade
)
  
Engine=Innodb
Luego cuando envíes el formulario se va a copiar la imagen a la carpeta temporal del servidor, copias la imagen a la ruta correspondiente ( desde la carpeta temporal del servidor a tu carpeta de imagenes) ,
añades la url de la imagen a la tabla de imagenes,
para sacarlas, recorres la tabla img buscando las imagenes "where id_post=$postquenecesitas" y sacas la url de la/s imagen/es que contenga...
si sigues estos pasos ( que seguramente tendrás que buscar info por la web )
yo creo que lo armas...

Suerte!
  #4 (permalink)  
Antiguo 13/12/2010, 07:32
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 1 mes
Puntos: 21
Respuesta: (Ayuda) subir imagenes a una carpeta y links a base de datos

Así esta bien la base de datos:

CREATE TABLE 'posts'
(
'id_post' int(11) auto_increment not null,
'nombre' varchar(50) not null,
'descripcion' text not null,
'url' varchar(50) not null,
primary key(id_post),
)ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE'imgs'
(
'id_img' int not null auto_increment,
'id_posts' int not null,
primary key(id_img),
constraint fk_posts_img foreign key (id_posts) references posts(id_posts)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  #5 (permalink)  
Antiguo 13/12/2010, 16:31
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: (Ayuda) subir imagenes a una carpeta y links a base de datos

Es bueno hacer un diagrama E-R de la base de datos, y luego normalizarla. Ahora si estas queriendo terminar rapido y sea como sea.... bueno.

Para que es la url que guardas? Y el nombre y la descripción, son del post o de la imagen? En definitiva: que datos de la foto queres guardar?
  #6 (permalink)  
Antiguo 13/12/2010, 18:41
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 1 mes
Puntos: 21
Respuesta: (Ayuda) subir imagenes a una carpeta y links a base de datos

La verdad si, tengo que terminar un proyecto y estoy complicado con el tiempo.

URL, Titulo y descripcion son de la foto..


Necesito crear un portfolio de un diseñador grafico.

EL diseñador quiere crear una galeria con imagenes pequeñas y que estas al hacer click vallan a otra web donde se muestre el titulo del sitio, una descripcion del sitio la direccion del sitio web y se muestre el logo y una pantalla del sitio web.

Saludos.
  #7 (permalink)  
Antiguo 13/12/2010, 18:52
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: (Ayuda) subir imagenes a una carpeta y links a base de datos

Si es así, entonces los datos que nombres tenes que ponerlos en la tabla de la foto!

Revisá tu esquema:
Cita:
...
'id_post' int(11) auto_increment not null,
'nombre' varchar(50) not null,
'descripcion' text not null,
'url' varchar(50) not null,

primary key(id_post),
)ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE'imgs'
(
'id_img' int not null auto_increment,
'id_posts' int not null, <- por que plural?
primary key(id_img),
...
Por supuesto que el post debe tener sus propios campos. No se cuales sean. Pero tenes dos opciones:
- que la tabla de fotos tenga un id foraneo (para la tabla de posts)
- que las dos tablas se relaciones a traves de una tercera tabla.

Para ser que estas apurado, etc, etc, te recomiendo la primera. Pero es bueno que luego aprendas la segunda.
  #8 (permalink)  
Antiguo 13/12/2010, 19:06
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 1 mes
Puntos: 21
Respuesta: (Ayuda) subir imagenes a una carpeta y links a base de datos

Estoy corto de tiempo pero prefiero aprender la mejor opcion,

Es decir la de tener una 3er tabla.

En primer lugar,
Estamos hablando de una relacion de uno a muchos, no?

un titulo, una descripcion, una url para varias imagenes?
  #9 (permalink)  
Antiguo 14/12/2010, 05:40
 
Fecha de Ingreso: mayo-2008
Mensajes: 117
Antigüedad: 15 años, 11 meses
Puntos: 8
Respuesta: (Ayuda) subir imagenes a una carpeta y links a base de datos

A ver.. primero céntrate en lo que quieres conseguir

si lo que quieres es únicamente guardar imágenes con un titulo y descripción, con una sola tabla tienes suficiente, ahora bien, si quieres tener muchas imágenes para un solo titulo,desc,etc lógicamente vas a tener que almacenar-lo en otra tabla i relacionarlo para luego consultar la base de datos y sacar solo lo que necesitas ...

te puede dar una idea o un método por el cual puedas llegar a la solución,pero tienes que sacar tus propias conclusiones de todo lo leído para poder solucionar tu problema ,nadie te va a hacer el código ( O por lo menos yo)

Un saludo y suerte!
  #10 (permalink)  
Antiguo 14/12/2010, 17:36
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: (Ayuda) subir imagenes a una carpeta y links a base de datos

No, no. Todo depende de tu necesidad. Yo te recomiendo que uses solo dos tablas. Ibas bien.

Entonces, la primera tabla tiene posts. La segunda tiene imagenes, y una clave foranea id_post

Cuando necesites listar imagenes de un post en particular, seleccionas todas las imagenes con ese id_post. Y si queres, podes hacer un JOIN para consultar ambas tablas a la vez, en vez de primero una y luego la otra.

Etiquetas: imagenes, links, subir, carpetas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:58.