Ir para conteúdo

Arquivado

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

erikabarrado

Upload com varias imagens em PHP e MYSQL

Recommended Posts

Boa noite, não tenho muito conhecimento em PHP, e estou com algumas dúvidas. Estou tentando fazer um formulário que cadastra várias informações e algumas imagens no banco de dados. Os campos da tabela são (valor_terreno, telefone, localizacao, contato_pessoa, cidade,imagem1, imagem2, imagem3, imagem4, imagem5, imagem6, observacao), no caso preciso que o codigo salve 6 imagens nas respectivas colunas. Já fiz com apenas 1 imagem e salva normalmente na pasta do servidor e no banco, mas com várias nunca tinha feito tentei realizando o código abaixo, salva as informações e nos campos das imagens salva 1 mesma imagem em todos os campos assim como na pasta do servidor fica somente uma. Alguém pode me ajudar? Segue codigos:

index.html

<form class="" action="recebe_terreno_1.php" method="POST" enctype="multipart/form-data">
<div class="row" >
<div class="col-md-6">
<div class="form-group">
<input type="text" class="form-control" placeholder="Digite o Valor do Terreno *" name="valor_terreno" id="valor_terreno" required data-validation-required-message="Você não digitou o valor!">
<p class="help-block text-danger"></p>
</div>
<div class="form-group">
<input type="tel" class="form-control" placeholder="Digite o Telefone *" name="telefone" id="telefone" required data-validation-required-message="Você não digitou o telefone.">
<p class="help-block text-danger"></p>
</div>
<div class="form-group">
<input type="text" class="form-control" placeholder="Digite a Localização *" name="localizacao" id="localizacao" required data-validation-required-message="Você não digitou a localização do Terreno.">
<p class="help-block text-danger"></p>
</div>
<div class="form-group">
<input type="text" class="form-control" placeholder="Digite o Contato *" name="contato_pessoa" id="contato_pessoa" required data-validation-required-message="Você não digitou o contato.">
<p class="help-block text-danger"></p>
</div>
<div class="form-group">
<textarea class="form-control" placeholder="Observação" name="observacao" id="observacao"></textarea>
<p class="help-block text-danger"></p>
</div>

</div>
<div class="col-md-6">
<div class="form-group">
<select class="form-control" name="cidade" id="cidade" >
<option value="Bauru" selected>Bauru</option>
<option value="Agudos" >Agudos</option>
<option value="Lencoes" >Lenções Paulista</option>
</select>
</div>

<div class="form-group">
<input type="file" class="form-control" name="arquivo[]">
<input type="file" class="form-control" name="arquivo[]">
<input type="file" class="form-control" name="arquivo[]">
<input type="file" class="form-control" name="arquivo[]">
<input type="file" class="form-control" name="arquivo[]">
<input type="file" class="form-control" name="arquivo[]">

</div>

</div>
<div class="row form-group">
<div class="col-sm-offset-5 col-sm-7">
<button type="submit" class="btn btn-success" value="Salvar">
<span class="glyphicon glyphicon-floppy-disk"></span> Salvar
</button>
<button type="submit" class="btn btn-danger" value="Limpar">
<span class="glyphicon glyphicon-refresh"></span> Limpar
</button>
</div>
</div>

</form>

recebe_terreno_1.php


<?php

include("./config.php");
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/

//CRIAR UMA LISTA COM TODOS OS MIME-TYPES PERMITIDOS
//Lista de tipos de arquivos permitidos
$tipoPermitidos = array('image/gif', 'image/jpeg', 'image/jpg', 'image/png');
//TAMANHO MÁXIMO (EM BYTES)
$tamanhoPermitido = 1024 * 3000; //700KB

/* @var $descricao type */
$valor_terreno = $_POST['valor_terreno'];
$telefone = $_POST['telefone'];
$localizacao = $_POST['localizacao'];
$contato_pessoa = $_POST['contato_pessoa'];
$cidade = $_POST['cidade'];
$observacao = $_POST['observacao'];


//O NOME ORIGINAL DO ARQUIVO NO COMPUTADOR DO USUÁRIO
$arqName1 = $_FILES['arquivo']['name'][0];
$arqName2 = $_FILES['arquivo']['name'][1];
$arqName3 = $_FILES['arquivo']['name'][2];
$arqName4 = $_FILES['arquivo']['name'][3];
$arqName5 = $_FILES['arquivo']['name'][4];
$arqName6 = $_FILES['arquivo']['name'][5];
//O TIPO MIME DO ARQUIVO. UM EXEMPLO PODE SER "foto/gif
$arqType1 = $_FILES['arquivo']['type'][0];
$arqType2 = $_FILES['arquivo']['type'][1];
$arqType3 = $_FILES['arquivo']['type'][2];
$arqType4 = $_FILES['arquivo']['type'][3];
$arqType5 = $_FILES['arquivo']['type'][4];
$arqType6 = $_FILES['arquivo']['type'][5];
//TAMANHO, EM BYTES, DO ARQUIVO
$arqSize1 = $_FILES['arquivo']['size'][0];
$arqSize2 = $_FILES['arquivo']['size'][1];
$arqSize3 = $_FILES['arquivo']['size'][2];
$arqSize4 = $_FILES['arquivo']['size'][3];
$arqSize5 = $_FILES['arquivo']['size'][4];
$arqSize6 = $_FILES['arquivo']['size'][5];
//NOME TEMPORARIO DO ARQUIVO, COMO FOI GUARDADO NO SERVIDOR
$arqTemp1 = $_FILES['arquivo']['tmp_name'][0];
$arqTemp2 = $_FILES['arquivo']['tmp_name'][1];
$arqTemp3 = $_FILES['arquivo']['tmp_name'][2];
$arqTemp4 = $_FILES['arquivo']['tmp_name'][3];
$arqTemp5 = $_FILES['arquivo']['tmp_name'][4];
$arqTemp6 = $_FILES['arquivo']['tmp_name'][5];
//O CÓDIGO DE ERRO ASSOCIADO A ESTE UPLOAD DE ARQUIVO
$arqError1 = $_FILES['arquivo']['error'][0];
$arqError2 = $_FILES['arquivo']['error'][1];
$arqError3 = $_FILES['arquivo']['error'][2];
$arqError4 = $_FILES['arquivo']['error'][3];
$arqError5 = $_FILES['arquivo']['error'][4];
$arqError6 = $_FILES['arquivo']['error'][5];


/*
* MOVENDO O ARQUIVO PARA A PASTA CERTA
*/

if (($arqError1 == 0)&&($arqError2 == 0) && ($arqError3 == 0) && ($arqError4 == 0) && ($arqError5 == 0) && ($arqError6 == 0)) {
//VERIFICA O TIPO DE ARQUIVO ENVIADO
if (array_search($arqType1, $tipoPermitidos) === false && array_search($arqType2, $tipoPermitidos) === false &&
array_search($arqType3, $tipoPermitidos) === false && array_search($arqType4, $tipoPermitidos) === false &&
array_search($arqType5, $tipoPermitidos) === false && array_search($arqType6, $tipoPermitidos) === false) {
echo 'O tipo de arquivo enviado é inválido!';
//VERIFICA O TAMANHO DO ARQUIVO ENVIADO
} elseif (($arqSize1 > $tamanhoPermitido) && ($arqSize2 > $tamanhoPermitido) &&
($arqSize3 > $tamanhoPermitido) && ($arqSize4 > $tamanhoPermitido) &&
($arqSize5 > $tamanhoPermitido) && ($arqSize6 > $tamanhoPermitido)) {
echo 'O tamnho do arquivo enviado é maior que o limite';
//NÃO HOUVE ERRO, MOVE O ARQUIVO
} else {
$pasta = 'imagem_terreno/';
//PEGA A EXTESÃO DO ARQUIVO ENVIADO
$tipo1 = strtolower(end(explode('.', $arqName1)));
$tipo2 = strtolower(end(explode('.', $arqName2)));
$tipo3 = strtolower(end(explode('.', $arqName3)));
$tipo4 = strtolower(end(explode('.', $arqName4)));
$tipo5 = strtolower(end(explode('.', $arqName5)));
$tipo6 = strtolower(end(explode('.', $arqName6)));
//DEFINE O NOME DO ARQUIVO USANDO UM UNIX TIMESTAMP
$nomea1 = time() . '.' . $tipo1;
$nomea2 = time() . '.' . $tipo2;
$nomea3 = time() . '.' . $tipo3;
$nomea4 = time() . '.' . $tipo4;
$nomea5 = time() . '.' . $tipo5;
$nomea6 = time() . '.' . $tipo6;

//ESCAPA OS CARACTERES DO ARQUIVO USANDO UM UNIX TIMESTAMP
$nomeMySQL = mysql_real_escape_string($_POST['valor_terreno']);
$nomeMySQL1 = mysql_real_escape_string($_POST['telefone']);
$nomeMySQL2 = mysql_real_escape_string($_POST['localizacao']);
$nomeMySQL3 = mysql_real_escape_string($_POST['contato_pessoa']);
$nomeMySQL4 = mysql_real_escape_string($_POST['cidade']);
$nomeMySQL5 = mysql_real_escape_string($_POST['observacao']);

$upload1 = move_uploaded_file($arqTemp1, $pasta . $nomea1);
$upload2 = move_uploaded_file($arqTemp2, $pasta . $nomea2);
$upload3 = move_uploaded_file($arqTemp3, $pasta . $nomea3);
$upload4 = move_uploaded_file($arqTemp4, $pasta . $nomea4);
$upload5 = move_uploaded_file($arqTemp5, $pasta . $nomea5);
$upload6 = move_uploaded_file($arqTemp6, $pasta . $nomea6);

//VERIFICA SE O ARQUIVO FOI MOVIDO COM SUCESSO
if (($upload1 == true) && ($upload2 == true) &&
($upload3 == true) && ($upload4 == true) &&
($upload5 == true) && ($upload6 == true)) {
//CRIA UMA QUERY MYSQL
$sql = "insert into pre_cadastro (valor_terreno, telefone, localizacao, contato_pessoa, cidade,
imagem1, imagem2, imagem3, imagem4, imagem5, imagem6, observacao)
values('$valor_terreno', '$telefone', '$localizacao', '$contato_pessoa', '$cidade', "
. "'$nomea1', '$nomea2', '$nomea3', '$nomea4', '$nomea5','$nomea6', '$observacao')";

$query = mysql_query($sql);
if ($query == true) {
echo "PRÉ CADASTRO DE TERRENO REALIZADO COM SUCESSO!";
header("Location: index.php");
}
}
}
} else {
echo"Ocorreu um erro com o upload, por favor tente novamente";
}

Compartilhar este post


Link para o post
Compartilhar em outros sites
Me parece que o problema é que você está gerando o nome dos arquivos sempre iguais (usar a função time() várias vezes, uma seguida da outra, retorna o mesmo valor), então as imagens são sobrescritas.


Utilize a função uniqid para gerar um nome único para cada imagem. Troque:


$nomea1 = time() . '.' . $tipo1;
$nomea2 = time() . '.' . $tipo2;
$nomea3 = time() . '.' . $tipo3;
$nomea4 = time() . '.' . $tipo4;
$nomea5 = time() . '.' . $tipo5;
$nomea6 = time() . '.' . $tipo6;


Por:


$nomea1 = uniqid() . '.' . $tipo1;
$nomea2 = uniqid() . '.' . $tipo2;
$nomea3 = uniqid() . '.' . $tipo3;
$nomea4 = uniqid() . '.' . $tipo4;
$nomea5 = uniqid() . '.' . $tipo5;
$nomea6 = uniqid() . '.' . $tipo6;

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala galera, tudo bem?
       
      Tenho o seguinte codigo:
       
       class Data {
      public static function ExibirTempoDecorrido($date)
      {
          if(empty($date))
          {
              return "Informe a data";
          }
          $periodos = array("segundo", "minuto", "hora", "dia", "semana", "mês", "ano", "década");
          $duracao = array("60","60","24","7","4.35","12","10");
          $agora = time();
          $unix_data = strtotime($date);
          // check validity of date
          if(empty($unix_data))
          {  
              return "Bad date";
          }
          // is it future date or past date
          if($agora > $unix_data) 
          {  
              $diferenca     = $agora - $unix_data;
              $tempo         = "atrás";
          } 
          else 
          {
              $diferenca     = $unix_data - $agora;
              $tempo         = "agora";
          }
          for($j = 0; $diferenca >= $duracao[$j] && $j < count($duracao)-1; $j++) 
          {
              $diferenca /= $duracao[$j];
          }
          $diferenca = round($diferenca);
          if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
          return "$diferenca $periodos[$j] {$tempo}";
      }
      }
       
      Funciona redondinho se o valor retornado for de algumas horas, mas...
      Quando passa de dois meses, ele retorna a palavra mess. Deve ser por conta dessa linha
      if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
       
      Quero que modre:
       
      2 meses atrás
      e não
      2 mess atrás.
       
      Espero que tenham entendido.
       
      Valeu
    • Por Carlos Web Soluções Web
      Olá...
      Estou tentando fazer o seguinte !!
      Listando dados em tabela !!
      Gostaria que....se na listagem houver 4 linhas...indepedente de seu número de ID, faça a listagem em ID ser em ordem 1 2 3 4 !!
      Exemplo...se tiver uma listagem de dados que está em ID 1 3 3...faça ficar 1 2 3 !!

       
      echo "<table class='tabela_dados' border='1'> <tr> <td>ID</td> <td>Nome Empresa</td> <td>Responsável</td> <td>Telefone 1</td> <td>Telefone 2</td> <td>E-mail 1</td> <td>E-mail 2</td> <td>Endereço</td> <td>CEP</td> <td>Bairro</td> <td>AÇÃO 1</td> <td>AÇÃO 2</td> </tr> "; $sql = "SELECT ID FROM usuarios_dados WHERE Usuario='$usuario'"; $result = $conn->query($sql); $num_rows = $result->num_rows; $Novo_ID = 1; for ($i = 0; $i < $num_rows; $i++) { $registro = $result -> fetch_row(); $sql2 = "UPDATE usuarios_dados SET ID='$Novo_ID' WHERE ID='$Novo_ID'"; $result2 = $conn->query($sql2); $Novo_ID++; } $sql = "SELECT * FROM usuarios_dados"; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row while($row = $result->fetch_assoc()) { echo "<tr> <td>$row[ID]</td> <td>$row[Nome_Empresa]</td> <td>$row[Responsavel]</td> <td>$row[Telefone_1]</td> <td>$row[Telefone_2]</td> <td>$row[Email_1]</td> <td>$row[Email_2]</td> <td>$row[Endereço]</td> <td>$row[CEP]</td> <td>$row[Bairro]</td> <td> <form method='post' action='Editar_Dados.php'> <input type='hidden' name='usuario' value='$usuario'> <input type='hidden' name='senha' value='$senha'> <input type='hidden' name='ID' value='$row[ID]'> <input type='submit' style='padding: 10px;' value='EDITAR'> </form> </td> <td> <form method='post' action='Deletar_Dados.php'> <input type='hidden' name='usuario' value='$usuario'> <input type='hidden' name='senha' value='$senha'> <input type='hidden' name='ID' value='$row[ID]'> <input type='submit' style='padding: 10px;' value='DELETAR'> </form> </td> </tr> "; } } else { echo "0 results"; } $conn->close();  
    • Por ILR master
      Boa tarde pessoal, tudo bem ?
       
      Eu uso o tinymce para cadastro de textos no meu siite, porém, quero fazer um sistema para que os colunistas possam fazer o próprio post.
      O problema do tinymce, é que ele mantém a formatação do texto copiado, como tamanho de fonts, negritos, etc... Quero que o usuário cole o texto e a própria textarea limpe a formatação para que ele formate como quiser.
       
      A pergunta é:
       
      O tinymce tem uma opção para desabilitar a formatação quando um texto é colocado?
      Tem alguma função via java ou php para retirar a formatação assim que o texto é colado?
      Ou é melhor usar um outro editor?
       
      Agradeço deste já.
    • Por Giovanird
      Olá a todos!
      Tenho uma pagina que possui uma DIV onde coloquei uma pagina PHP.
      Uso a função setInterval para atualizar a pagina inclusa dentro da DIV.
      O problema é que ao acessar o site , a DIV só me mostra a pagina inclusa somente quando completo o primeiro minuto.
      Preciso que a pagina inclusa já inicie carregada
       
      Meu código JavaScript e a DIV com a pagina PHP
       
      <script> function atualiza(){ var url = 'direita.php'; $.get(url, function(dataReturn) { $('#direita').html(dataReturn); }); } setInterval("atualiza()",60000); </script> <div> <span id="direita"></span> </div>  
    • Por ILR master
      Fala pessoal.
       
      Seguinte:
       
      Quero selecionar duas tabelas e mostrar com resultados intercalados. Abaixo segue um código explicando para vcs terem uma ideia.
       
      $consulta = "SELECT A.*, B.* FROM tabela1 A, tabela2 B'";
      $resultado = mysqli_query($conexao, $consulta) or die ("erro");
      while($busca = mysqli_fetch_array($resultado)){
       
      print $busca['cod_evento']; --> traz o código da tabela1 
      print $busca['titulo_evento']; -->  traz o titulo da tabela1
      print $busca['cod_noticia']; --> traz o código da tabela2
      print $busca['titulo_noticia']; --> traz o tituloda tabela2
       
      }
       
      Espero que entendam. Grato
       
×

Informação importante

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