Ir para conteúdo

POWERED BY:

Arquivado

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

Ualace Moura

[Resolvido] Como gravar o nome das imagens no bd

Recommended Posts

Olá galera do imasters , eu aqui de novo cheide dúvidas.

olha só, to tentando um script para fazer uploads de várias imagem para pasta e grava no nome das imagens no banco de dados.

 

Já consegui enviar varias imagens para a pastas mas na hora de gravar o nome delas no bd dá erro.

 

vou postar o código para entenderem melhor:

 

TABELA DO BD

 

tbl_imagens

 

codigo

album

fotos

 

FORMULÁRIO QUE ENVIA AS IMAGENS

 


<?php
$Quantidade = (isset($_POST['quantidade']) && is_int(intval($_POST['quantidade']))) ? (int)$_POST['quantidade'] : 1;

echo '<form action="album/fotos/processa_upload.php" method="post" name="albumfotos" enctype="multipart/form-data" >';

echo '<span>Selecione a Imagem:</span><br />';
echo '<input type="hidden" name="album" value="" />';
for($i = 1; $i <= $Quantidade; ++$i)
{
echo 'Foto #' . $i . ':<input type="file" name="fotos[]" multiple=""/><br />';
}

echo '<input type="submit" name="enviar-fotos" id="enviar" value="Cadastrar" />';
echo '</form>';
?>

 

 

CÓDIGO QUE PEGA AS IMAGENS E JOGA NA PASTA

 


<?php

// Pasta de destino das fotos
$Destino = 'uploads/';
// Obtém dados do upload
$Fotos = $_FILES['fotos'];
// Contagem de fotos enviadas
$Conta = 0;

// Itera sobre as enviadas e processa as validações e upload
for($i = 0; $i < sizeof($Fotos); $i++)
{
   // Passa valores da iteração atual
   $Nome    = $Fotos['name'][$i];
   $Tamanho = $Fotos['size'][$i];
   $Tipo    = $Fotos['type'][$i];
   $Tmpname = $Fotos['tmp_name'][$i];

   // Verifica se tem arquivo enviado
   if($Tamanho > 0 && strlen($Nome) > 1)
   {
       // Verifica se é uma imagem
       if(preg_match('/^image\/(gif|jpeg|jpg|png)$/', $Tipo))
       {
           // Caminho completo de destino da foto
           $Caminho = $Destino . $Nome;

           // Tudo OK! Move o upload!
           if(move_uploaded_file($Tmpname, $Caminho))

           {
               echo 'Foto #' . ($i+1) . ' enviada.<br/>';

               // Faz contagem de enviada com sucesso
               $Conta++;
           }            
           else // Erro no envio
           {
               // $i+1 porque $i começa em zero
               echo 'Não foi possível enviar a foto #' . ($i+1) . '<br/>';
           }
       }
   }
}

if($Conta) // Imagens foram enviadas, ok!
{
   echo '<br/>Foi(am) enviada(s) ' . $Conta . ' foto(s).';
}
else // Nenhuma imagem enviada, faz alguma ação
{
   echo 'Você não enviou fotos!';
}
?>

 

 

É isso ai, só quero fazer com que o nome do álbum e o nome das fotos sejam gravadas no banco de dados.

 

desde já agradeço a ajuda de todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

não estás a inserir nada na base de dados

 

tens que fazer algo deste género

mysql_query("INSERT INTO tabela (campo, campo)
   VALUES (variavel, variavel)");

 

tem que ser parecido com isto, falta encaixares o ciclo for

 

<?php

   require '../conexao.php';

   $Campo1	=	$_POST['Campo1'];
   $Imagem	=	$_FILES['Imagem'];
   $trimimg=	$_FILES["Imagem"]["name"];


	function saveUploadedFileToCurrentPHPFolder (){              
	$origin=$_FILES["Imagem"]['tmp_name']; //patch absoluta do ficheiro na origem
	$destination="../pasta/_Imagens/".$_FILES["Imagem"]["name"]; //path relativa do ficheiro, na directoria corrente deste php

	move_uploaded_file($origin, $destination); //mover!
	return $destination;
}//saveUploadedFileToCurrentPHPFolder

$whereIsTheSavedFile = saveUploadedFileToCurrentPHPFolder('Imagem'); //se nao se movesse o ficheiro antes do fim deste PHP, seria automatica/ apagado

mysql_select_db($database_conexao);

   mysql_query("INSERT INTO tabela (Campo1, Imagem)
   VALUES ('$Campo1', '$trimimg')");

   print "
                   <META HTTP-EQUIV=REFRESH CONTENT='0; URL=pagina.php'>
                   <script type=\"text/javascript\">
                   alert(\"Imagem adicionada com sucesso!\");
                   </script>
                   ";
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo td bem.

 

consegui fazer com que ele grave o caminho da imagem no bd da seguinte forma, o probela é que o código só envia 5 imagens de cada vez e não encontrei com posso determinar um numero maior de imagens. segue o código

 


<?php
$conexao = mysql_connect("host", "usuario", "senha")
or die ("erro ao conectar");

$db = mysql_select_db("banco")
or die("erro ao selecionar banco");
?>

<?php

// Pasta de destino das fotos
$Destino = 'uploads/';
// Obtém dados do upload
$Fotos = $_FILES['fotos'];

// Contagem de fotos enviadas
$Conta = 0;

// Itera sobre as enviadas e processa as validações e upload
for($i = 0; $i < sizeof($Fotos); $i++)
{
   // Passa valores da iteração atual
   $Nome    = $Fotos['name'][$i];
   $Tamanho = $Fotos['size'][$i];
   $Tipo    = $Fotos['type'][$i];
   $Tmpname = $Fotos['tmp_name'][$i];



   // Verifica se tem arquivo enviado
   if($Tamanho > 0 && strlen($Nome) > 1)
   {
       // Verifica se é uma imagem
       if(preg_match('/^image\/(gif|jpeg|jpg|png)$/', $Tipo))
       {
           // Caminho completo de destino da foto
           $Caminho = $Destino . $Nome;

		$sql = mysql_query("INSERT INTO tbl_imagens VALUES ('','".$album."', '".$Caminho."')") or die(mysql_error());

           // Tudo OK! Move o upload!
           if(move_uploaded_file($Tmpname, $Caminho))

           {
               echo 'Foto #' . ($i+1) . ' enviada.<br/>';

               // Faz contagem de enviada com sucesso
               $Conta++;
           }            
           else // Erro no envio
           {
               // $i+1 porque $i começa em zero
               echo 'Não foi possível enviar a foto #' . ($i+1) . '<br/>';
           }
       }
   }
}

if($Conta) // Imagens foram enviadas, ok!
{
   echo '<br/>Foi(am) enviada(s) ' . $Conta . ' foto(s).';
}
else // Nenhuma imagem enviada, faz alguma ação
{
   echo 'Você não enviou fotos!';
}
?>

 

 

é isso ai tá gravando na pasta e no bd, mas to limitado a 5 fotos com posso aumentar a quantidade de fotos a ser enviada de uma vez.

Muito obrigado pela ajuda.

não estás a inserir nada na base de dados

 

tens que fazer algo deste género

mysql_query("INSERT INTO tabela (campo, campo)
   VALUES (variavel, variavel)");

 

tem que ser parecido com isto, falta encaixares o ciclo for

 

<?php

   require '../conexao.php';

   $Campo1	=	$_POST['Campo1'];
   $Imagem	=	$_FILES['Imagem'];
   $trimimg=	$_FILES["Imagem"]["name"];


	function saveUploadedFileToCurrentPHPFolder (){              
	$origin=$_FILES["Imagem"]['tmp_name']; //patch absoluta do ficheiro na origem
	$destination="../pasta/_Imagens/".$_FILES["Imagem"]["name"]; //path relativa do ficheiro, na directoria corrente deste php

	move_uploaded_file($origin, $destination); //mover!
	return $destination;
}//saveUploadedFileToCurrentPHPFolder

$whereIsTheSavedFile = saveUploadedFileToCurrentPHPFolder('Imagem'); //se nao se movesse o ficheiro antes do fim deste PHP, seria automatica/ apagado

mysql_select_db($database_conexao);

   mysql_query("INSERT INTO tabela (Campo1, Imagem)
   VALUES ('$Campo1', '$trimimg')");

   print "
                   <META HTTP-EQUIV=REFRESH CONTENT='0; URL=pagina.php'>
                   <script type=\"text/javascript\">
                   alert(\"Imagem adicionada com sucesso!\");
                   </script>
                   ";
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu faria

 

$limite = 10; //quantidade de fotos de limite

for($i = 0; $i < $limite; $i++)
{

 

ou então se o teu código ainda se mantiver, vais buscar a $Quantidade

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça tipo assim:

$nome = "destino/". $_FILES['imagem']['name'];
mysql_query("INSERT INTO tabela (imagem) VALUES ('$nome')");

Isso deve funcionar, é so alterar algumas coisinhas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu cara muito obrigado mesmo, funcionou certinho

eu faria

 

$limite = 10; //quantidade de fotos de limite

for($i = 0; $i < $limite; $i++)
{

 

ou então se o teu código ainda se mantiver, vais buscar a $Quantidade

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.