Jump to content

Vários uploads no mesmo registo


Recommended Posts

Posted (edited)

Boa noite.

Estou com um problema daqueles 😞. Ando às cabeçadas para tentar num único registo carregar diversas imagens e gravar o caminho na base de dados.

Então é o seguinte, tenho um sistema para uma imobiliária e necessito que, na administração, seja possível inserir os seguintes campos:

  • Referência
  • Categoria
  • Tipologia
  • Finalidade
  • ...
  • img1
  • img2
  • ...
  • img9

Para tal tenho o seguinte código:

if ($num_b==1) { // Adicionar
          if ($opc1==1) {
             $ref=$_POST["ref"];
             $descricao=$_POST["descricao"];
             $num_cat=$_POST["num_cat"];
             $num_fin=$_POST["num_fin"];
    $tipologia=$_POST["tipologia"];
    $localizacao=$_POST["localizacao"];
    $area=$_POST["area"];
    $preco=$_POST["preco"];

             $i="insert into imoveis (num_categoria, num_finalidade,ref,tipologia,localizacao,area,descricao,preco) values ('$num_cat','$num_fin','$ref','$tipologia','$localizacao','$area','$descricao','$preco')";
             $r_i=mysql_query($i) or die ("Erro Inserir Biblioteca");
             $p="select * from imoveis where ref='$ref' and descricao='$descricao'";
             $r_p=mysql_query($p) or die ("Erro Procurar Biblioteca");
             $t_p=mysql_num_rows($r_p);

             if ($t_p==0) echo "Impossível, contactar admin";
             else {
                 $b=mysql_fetch_array($r_p) or die ("Erro Array Imóveis");
                 $num_registo=$b["num_registo"];

           $dir="../imoveis/";
                 $efilename = explode('.', $_FILES["userfile"]["name"]);
                 $ext = $efilename[count($efilename) - 1];
           $ficheiro=$num_registo.".".$ext;
                 if($ext=="jpg" || $ext=="JPG" || $ext=="bmp" || $ext=="BMP" || $ext=="png" || $ext=="PNG") $ok=true;
                 if ($ok==true) {
                    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $dir.$ficheiro)) {
                       $a="update imoveis set ficheiro='$ficheiro' where num_registo='$num_registo'";
                       $r_a=mysql_query($a) or die ("Erro Guardar nome do Ficheiro");
                       echo "Ficheiro Imóvel ". $_FILES["userfile"]["name"] .": <font color='green'><u>Guardado</u></font><br>";
                    }
                 }
                 else echo "Ficheiro Imóvel: <font color='red'><u>Não Guardado</u></font><br>";
             }
             echo "<center><b>Imóvel inserido com sucesso</b></center>";
          }
          else {
               echo "
               <form enctype='multipart/form-data' method='post' action='admin.php?num_mene=$num_menu&num_b=$num_b&opc1=1'>
               <b>Referência:</b> <input type='text' name='ref' size='15'><br>
   <b>Tipo:</b> <select name='num_cat'>";
               $p_c="select * from categoria";
               $r_c=mysql_query($p_c) or die ("Erro Procurar Categoria");
               $t_c=mysql_num_rows($r_c);

               if ($t_c==0) exit ("Sem Categorias");
               else {
                    while($z=mysql_fetch_array($r_c)) {
                       $num_cat=$z["num_categoria"];
                       $cat=$z["categoria"];

                       echo "<option value='$num_cat'>$cat</option>";
                    }
               }
               echo "</select><br>
   <b>Tipologia:</b> <input type='text' name='tipologia' size='15'><br>
   <b>Localização:</b> <input type='text' name='localizacao' size='30'><br>
   <b>Área Bruta:</b> <input type='text' name='area' size='15'><br>
   <b>Finalidade:</b> <select name='num_fin'>";
               $p_c="select * from finalidade";
               $r_c=mysql_query($p_c) or die ("Erro Procurar Categoria Finalidade");
               $t_c=mysql_num_rows($r_c);

               if ($t_c==0) exit ("Sem Categorias Finalidade");
               else {
                    while($z=mysql_fetch_array($r_c)) {
                       $num_fin=$z["num_finalidade"];
                       $fin=$z["finalidade"];

                       echo "<option value='$num_fin'>$fin</option>";
                    }
               }
               echo "</select><br>
               <b>Descrição:</b><br><textarea name='descricao' rows=5 cols=30><textarea><br>
               <b>Ficheiro:</b> <input type='file' name='userfile'><br>
   <b>Preço:</b> <input type='text' name='preco' size='15'><br>                        
               <input type='submit' class='botao-login' value='Inserir »»»'> <input class='botao-login' type='reset' value='Limpar »»»'>
               </form>";
          }
       }

O problema é que só consigo que faça o upload de uma imagem e a respectiva gravação do caminho na BD.

Então queria sugestões para que possa fazer upload de várias imagens tudo no mesmo formulário.

Edited by brunoais
geshi
Posted

Já e não consegui.. fazer as verificações para cada um dos files e como como os enviar para a pasta em questão 😞 sou muito novinho nisto e tenho andado a batalhar bastante e não tenho conseguido

Posted (edited)

Tentei fazer desta forma mas o primeiro registo é guardado e o segundo dá erro 😞

Ficheiro Imóvel Chrysanthemum.jpg: Guardado

Erro Array Imóveis

...
$p="select * from imoveis where ref='$ref' and descricao='$descricao'";
             $r_p=mysql_query($p) or die ("Erro Procurar Biblioteca");
             $t_p=mysql_num_rows($r_p);

             if ($t_p==0) echo "Impossível, contactar admin";
             else {
                 $b=mysql_fetch_array($r_p) or die ("Erro Array Imóveis");
                 $num_registo=$b["num_registo"];

           $dir="../imoveis/";
                 $efilename = explode('.', $_FILES["userfile"]["name"]);
                 $ext = $efilename[count($efilename) - 1];
           $ficheiro=$num_registo.".".$ext;
                 if($ext=="jpg" || $ext=="JPG" || $ext=="bmp" || $ext=="BMP" || $ext=="png" || $ext=="PNG") $ok=true;
                 if ($ok==true) {
                    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $dir.$ficheiro)) {
                       $a="update imoveis set ficheiro='$ficheiro' where num_registo='$num_registo'";
                       $r_a=mysql_query($a) or die ("Erro Guardar nome do Ficheiro");
                       echo "Ficheiro Imóvel ". $_FILES["userfile"]["name"] .": <font color='green'><u>Guardado</u></font><br>";
                    }
                 }
                 else echo "Ficheiro Imóvel: <font color='red'><u>Não Guardado</u></font><br>";
             }

    if ($t_p==0) echo "Impossível, contactar admin";
             else {
                 $b=mysql_fetch_array($r_p) or die ("Erro Array Imóveis");
                 $num_registo=$b["num_registo"];

           $dir="../imoveis/";
                 $efilename = explode('.', $_FILES["img1"]["name"]);
                 $ext = $efilename[count($efilename) - 1];
           $img1=$num_registo.".".$ext;
                 if($ext=="jpg" || $ext=="JPG" || $ext=="bmp" || $ext=="BMP" || $ext=="png" || $ext=="PNG") $ok=true;
                 if ($ok==true) {
                    if (move_uploaded_file($_FILES['img1']['tmp_name'], $dir.$ficheiro)) {
                       $a="update imoveis set img1='$img1' where num_registo='$num_registo'";
                       $r_a=mysql_query($a) or die ("Erro Guardar nome do Ficheiro");
                       echo "Imagem 1 ". $_FILES["img1"]["name"] .": <font color='green'><u>Guardado</u></font><br>";
                    }
                 }
                 else echo "Ficheiro Imóvel: <font color='red'><u>Não Guardado</u></font><br>";
             }

             echo "<center><b>Imóvel inserido com sucesso</b></center>";
          }
...
Edited by brunoais
geshi

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.