Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Teoalvino

Multiplo Upload de Imagens - insert into MYSQL

Recommended Posts

Bom dia!

 

tenho um código para "múltiplo upload de imagens" o qual está funcionando perfeitamente com as imagens,

o form envia "nome, preço, e-mail, descrição, e etc...

a imagens vai para pasta "uploads" e o thumbs vai para o pasta "thumbs" com tamanho reduzido

 

mais agora vem a questão:

 

quando faço o up de 2 ou mais imagens ele funciona também, as imagens vão para as pastas, e os caminhos vão para o banco de dados, porem o restante das imagens ele cria outros ids, em outras linhas ficando assim:

 

tabela registro

coluna

-------- nome | preco | email | descricao | foto | thumb | id |

------- José | 10,00 | jose@..| alguma coisa| img01| img01 | 01|

------- José | 10,00 | jose@..| alguma coisa| img02 | img02 | 02|

------- José | 10,00 | jose@..| alguma coisai mg03 | img03 | 03 |

 

ou seja, eu fiz um cadastro, e ele criou o mesmo cadastro para quantas fotos for enviadas

se eu criar um cadastro com apenas uma foto? uma maravilha!

 

isso foi apenas um cadastro, mais como enviei 3 fotos ele repetiu os dados para as outras imagens! entendeu?

 

como posso fazer esse sistema funcionar com varias imagens?

 

estou pensando em criar um "código" gerado para cada cadastro aleatório, ex: 0011,

assim criaria uma outra tabela somente para imagens e usaria esse mesmo código para exibir todas as imagens que aquele formulário enviou!

 

ou como poderia enviar cada imagens para uma coluna: Foto01, Foto02, Foto 03 .. ?

 

 

Grato

Teo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você deve criar outra tabela para as fotos, e nessa tabela ter o id do cadastro como chave estrangeira

 

tabela registro

 

id | nome | preço | email | descricao

01 | José | 10,00 | jose@...| alguma coisa

 

tabela foto

 

id_foto | id_registro | foto | thumb

01 | 01 | 1.jpg| 1.jpg

02 | 01 | 2.jpg| 2.jpg

03 | 01 | 3.jpg| 3.jpg

 

Assim, quando você buscar no banco o registro, você busca na tabela foto todas as fotos pelo id_registro.

 

Obs: Se o thumb tiver sempre o mesmo nome da foto não existe a necessidade de guardar em banco

Compartilhar este post


Link para o post
Compartilhar em outros sites

Blz antonio_milat, Obrigado pela resposta!

 

fiz isso, criei mais uma tabela "imagens" e agora meu codigo tem dois "insert into"

então botei uma variável $id_registro = mysql_insert_id();

 

mais ele só me retorna "0"

 

pode me explicar como devo fazer isso?

 

ou "SELECT CODIGO FROM registro WHERE CODIGO = LAST_INSERT_ID()";

 

 

Valeu, Obrigado!

Teo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta passar seu objeto de conexão como parâmetro par o last_insert_id()

 $id_registro = mysql_insert_id($conn);
// onde $conn e a variavel que recebeu o mysql_connect

Se continuar dando erro tenta substituir para o novo padrão de MySQL que o MySQLi que essa função caiu na versão 5.5 do PHP

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você poderia ao invés de criar um registro para cada imagem, poderia simplesmente ao cadastrar, criar um diretório com um nome randômico e fazer o upload das imagens neste diretório, e cadastrar no banco apenas o nome do diretório, assim você evita ter que criar outra tabela, e no momento de exibir as imagens basta selecionar o diretório e listar as imagens.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existe outra opção mais fácil e simples.. :) você evita de criar outra tabela, vamos lá:

 

Para adicionar várias fotos para a mesma pessoa, basta você separar o nome das fotos por vírgula ','.

Ex: coluna 'foto': foto1.jpg,foto2.jpg,foto3.jpg etc....

 

quando você quiser listar essas fotos:

<?php
$fotos = 'foto1.jpg,foto2.jpg,foto3.jpg'; 
$listar = explode(',', $fotos);


foreach($listar as $foto){
echo $foto."<br>";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bacana Pessoal, muito Obrigado a todos!

 

como já havia iniciado na noite anterior a ideia do antonio_milat e do Danilo Soncini então fiz desse jeito!

 

criei duas tabelas e usei o código do Danilo Soncini!

 

$id_registro = mysql_insert_id($conn);

 

e ficou perfeito!

exatamente como demonstrou o antonio_milat

 

mais agora veio outro dilema! rsrsrs

 

fazer o novo select

 

Muito Obrigado pessoal

Muito Obrigado também ao Juliano da http://studyclass.com.br/

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.