Insert database image

Asked

Viewed 306 times

1

Good friends, I’m having a little problem inserting image in the database

function apresenta_formulario() {
    if (isset($_GET['id_publicidade'])){

    $ligacao = mysqli_connect("localhost", "root", "", "publicidades");
    if (mysqli_connect_errno()) {
        echo "Erro na liga��o MySQL: " . mysqli_connect_error();
    }

    $sql = "select * from publicidade where id_publicidade = '" . $_GET['id_publicidade'] . "'";

    $resultado = mysqli_query($ligacao, $sql);

    $registo = mysqli_fetch_assoc($resultado);

    $descricao=$registo['descricao'];

    ?>
    <form  name="upload_imagem" method="post" enctype="multipart/form-data"  action="<?php echo $_SERVER['PHP_SELF']; ?>">
        <p>Alterar Publicidade nº <?php echo $_GET["id_publicidade"]; ?> </p>
        <p>Nome da publicidade <input type="text" name="nome" size="50" value="<?php echo $registo["nome"]; ?>"></p>
        <label for="file">Ficheiro:</label>
        <input type="file" name="file"/>
        <br>
        <p>Categoria <input type="text" name="categoria" size="50" value="<?php echo $registo["categoria"]; ?>"></p>
        <p>Visualizações <input type="text" name="visualizacoes" size="50" value="<?php echo $registo["visualizacoes"]; ?>"></p>
        <p>Estado <input type="text" name="estado" size="50" value="<?php echo $registo["estado"]; ?>"></p>
        <p>Coordenada X <br><input type="text" name="x" size="50" id="CorX" value="<?php echo $registo["x"]; ?>"></p>
        <p>Coordenada Y <br><input type="text" name="y" size="50" id="CorY" value="<?php echo $registo["y"]; ?>"></p>
        <p><input type="submit" name="alterar"></p>
        <p> <input type="reset" name="reset"></p>
        <input name="id_publicidade" value="<?php echo $_GET["id_publicidade"]; ?>" type="hidden">
    </form>
    <p id="registo" style="height: 400px"></p>
    <?php
    mysqli_close($ligacao);

    }
    else{
    header("Location: listar.php");
    }
}

// fun��o respons�vel pelo processamento do formul�rio (tudo c�gido PHP)
function processa_formulario() {
    define ("MAX_SIZE","1000");

//Função que devolve a extensão de um ficheiro
function getExtension($str) 
{
    $i = strrpos($str,".");
    if (!$i) 
    { 
        return ""; 
    }
    $l = strlen($str) - $i;
    $ext = substr($str,$i+1,$l);
    return $ext;
}

    $nome = $_POST['nome'];
    $categoria=$_POST['categoria'];
    $visualizacoes = $_POST['visualizacoes'];
    $estado=$_POST['estado'];
    $x=$_POST['x'];
    $y=$_POST['y'];
    $image = $_FILES['file']['name'];   
    $codigo = $_POST["id_publicidade"];
    //Verifica se existe alguma imagem para ser importada
    if($image)//Existe uma imagem para ser importada
    {
       //Retira os elementos "/"
       $filename = stripslashes($_FILES['file']['name']);
       //Verifica qual a extensão do ficheiro
       $extension = getExtension($filename);
       //Coloca todos os caracteres da extensão com letra minuscula
       $extension = strtolower($extension);
      //Verifica os formatos de imagem que podem ser importados
      if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "gif"))//Formato diferente dos permitidos 
      {
          //print error message
           echo "<strong>Imagem:</strong> Este formato não pode ser importado! Utilize o formato jpg ou gif";
      }
      else//Formato permitido
      {
          //Verifica qual o tamanho da imagem seleccionada
          $size=filesize($_FILES['file']['tmp_name']);
          //Verifica se o tamanho é superior a 100kb
          if ($size > MAX_SIZE*1024)//tamanho superior
          {
             echo 'A imagem não pode exceder o tamanho de '. MAX_SIZE .'kb';
          }
          else//tamanho inferior
          {
             //Gera um nome para a imagem
             $image_name=time().'.'.$extension;

             $img=$image_name;

             if (move_uploaded_file($_FILES['file']['tmp_name'], "imagens/".$image_name)) {

                $ligacao = mysqli_connect("localhost","root","","publicidades");
                if (mysqli_connect_errno()) {
                    echo "Erro na ligação MySQL: " . mysqli_connect_error();
                }
                echo $nome;
                $sql = "update publicidade set id_publicidade='".$codigo."', nome='".$nome."', descricao='".$image_name."', categoria='".$categoria."', estado='".$estado."', visualizacoes ='".$visualizacoes."', x= '".$x."' , y='".$y."' where id_publicidade = '".$codigo."' ";
                $resultado = mysqli_query($ligacao, $sql);

                if($resultado)
                {
                    $id_imagem = mysqli_insert_id($ligacao);
                    echo "Editado com sucesso";

                }
                else
                {
                    echo "Não foi possível efectuar o upload da imagem (nome para a base de dados)";
                }
             }
           }
       }
    }
    else//Não existe nenhuma imagem para ser importada 
    {
        $sql5 = "update publicidade set id_publicidade='".$codigo."', nome='".$nome."', estado='".$estado."', visualizacoes ='".$visualizacoes."', x= '".$x."' , y='".$y."' where id_publicidade = '".$codigo."' ";
                $resultado = mysqli_query($ligacao, $sql5);

    }
    mysqli_close($ligacao);

Well, guys, here’s the thing, if I want to change an ad, if I change the image and change the various fields the program works right but if my goal is just to change the fields without changing the image what happens is that besides creating repeated records in the database, it doesn’t change anything and I don’t know why.

  • 1

    Are you sure you have put your code correctly? has one function inside the other.

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.