Jump to content
sixTolak

Dúvida em alteração com relação a imagens

Recommended Posts

Olá a todos!

Sou novo aqui no fórum, resumindo meus conhecimentos em PHP, sou estagiário, ou seja, em meu curso (CTI - Curso Técnico em Informática), onde tive apenas um conhecimento básico em PHP, como inclusão de dados sem imagem em tabelas, alterações sem imagens, etc...

Contudo, procurei mais e mais com meu estágio métodos de enviar imagens, demorei mas consegui fazer tal ato, que de fato para quem não sabia, era algo incrível haha...

Contudo, chega de apresentações e vou direto ao ponto:

 

Gostaria de saber uma função com relação a imagem na alteração, sendo que, na alteração se o usuário apenas quiser mudar o nome e clicar em alterar, ele vai alterar o nome e a imagem irá se "excluir o caminhono banco de dados".

 

Deixo em anexo os códigos:

 

<?php
include('conecta.php'); //conexão
include('./funcoes.php'); //funções de envio de imagens, listagem, etc
$consulta = $con->prepare("SELECT * FROM produtos p inner join subcate s on (p.numSubCate=s.numSubCate) where numProd=?");
$consulta->bindParam(1, $_GET['id']);
$consulta->execute();
$registro = $consulta->fetch(PDO::FETCH_OBJ);


if (isset($_POST['nomeProd'])) {
    $sql = $con->prepare('update produtos set nomeProd=?, valorProd=?, descriProd=?, dataProd=?, dispoProd=?, imgProdUm=?, imgProdDois=?, imgProdTres=?  where numProd=?');

    $sql->bindParam(1, $_POST['nomeProd']);
    $sql->bindParam(2, $_POST['valorProd']);
    $sql->bindParam(3, $_POST['descriProd']);
    $sql->bindParam(4, $_POST['dataProd']);
    $sql->bindParam(5, $_POST['dispoProd']);
    $sql->bindParam(6, $destino03);
    $sql->bindParam(7, $destino01);
    $sql->bindParam(8, $destino02);
    $sql->bindParam(9, $_GET['id']);
    if (!$sql->execute())
        print_r($sql->errorInfo());
    else
        header("Location: produtos.php");
}
?>
//antes de questionarem sobre $destino03 antes do 01 e 02, eu tinha apenas #destino porém tive que refazer tal função, ou seja, é confuso mas $destino03 envia a imagem primária do produto

 

Alterar dentro do HTML

            <?php
//Fiz o PHP para exibir ao usuário as imagens atuis do produto
            $consulta = $con->query("select * from produtos");
            echo '<table class="tabela02">';
            echo "<td><b>Capa do produto atual</b> <br/><img height='100' width=100 src='" . $registro->imgProdUm . "'/></td><br/>"; //imgProdUm é o campo da primeira imagem no banco
            
            echo '<br/><td><input title="A esta primeira imagem irá ficar como capa do produto no site." class="texto02" name="arquivo01" type="file" <br/></td>'; //arquivo01 é a variável de envio em funções.php

            echo "<td><b>Capa/imagen secundária</b> <br/><img height='100' width=100 src='" . $registro->imgProdDois . "'/></td>"; //imgProdDois é o campo da primeira imagem no banco
            echo '<td><input title="A esta segunda imagem irá ficar como imagem extra/complementar do produto no site." class="texto02" name="arquivo02" type="file" <br/></td>'; //arquivo02 é a variável de envio em funções.php

            echo "<td><b>Capa/imagen secundária</b> <br/><img height='100' width=100 src='" . $registro->imgProdTres . "'/></td>"; //imgProdTres é o campo da primeira imagem no banco
            echo '<td><input title="A esta segunda imagem irá ficar como imagem extra/complementar do produto no site." class="texto02" name="arquivo03" type="file" <br/></td>'; //arquivo03 é a variável de envio em funções.php
            echo '</table>'
            ?>

Funções.php

<?php

function criacombo($tabela, $campovalor, $campoopcao, $marcado) {
    include('conecta.php');
    echo '<select name = "' . $campovalor . '">';
    $consulta = $con->query("select * from $tabela order by $campoopcao");
    $selecionado="";
    while ($registro = $consulta->fetch(PDO::FETCH_OBJ)) {
        if ($marcado==$registro->$campoopcao){
            $selecionado='selected=""';
        }
        echo '<option value="'  .
        $registro->$campovalor .'" '.$selecionado.'>' .
        $registro->$campoopcao . '</option>';
        $selecionado="";
    }
    echo '</select>';
}
?>



<?php
if ( isset( $_FILES[ 'arquivo02' ][ 'name' ] ) && $_FILES[ 'arquivo02' ][ 'error' ] == 0 ) {
//    echo 'Você enviou o arquivo: <strong>' . $_FILES[ 'arquivo' ][ 'name' ] . '</strong><br />';
//    echo 'Este arquivo é do tipo: <strong > ' . $_FILES[ 'arquivo' ][ 'type' ] . ' </strong ><br />';
//    echo 'Temporáriamente foi salvo em: <strong>' . $_FILES[ 'arquivo' ][ 'tmp_name' ] . '</strong><br />';
//    echo 'Seu tamanho é: <strong>' . $_FILES[ 'arquivo' ][ 'size' ] . '</strong> Bytes<br /><br />';
// 
    $arquivo_tmp = $_FILES[ 'arquivo02' ][ 'tmp_name' ];
    $nome = $_FILES[ 'arquivo02' ][ 'name' ];
 
    // Pega a extensão
    $extensao = pathinfo ( $nome, PATHINFO_EXTENSION );
 
    // Converte a extensão para minúsculo
    $extensao = strtolower ( $extensao );
 
    // Somente imagens, .jpg;.jpeg;.gif;.png
    // Aqui eu enfileiro as extensões permitidas e separo por ';'
    // Isso serve apenas para eu poder pesquisar dentro desta String
    if ( strstr ( '.jpg;.jpeg;.gif;.png', $extensao ) ) {
        // Cria um nome único para esta imagem
        // Evita que duplique as imagens no servidor.
        // Evita nomes com acentos, espaços e caracteres não alfanuméricos
        $novoNome = uniqid ( time () ) . ".".$extensao;
 
        // Concatena a pasta com o nome
        $destino01 = 'uploads/' . $novoNome;
 
        // tenta mover o arquivo para o destino
        if ( @move_uploaded_file ( $arquivo_tmp, $destino01 ) ) {
//            echo 'Arquivo salvo com sucesso em : <strong>' . $destino . '</strong><br />';
//            echo ' < img src = "' . $destino01 . '" />';
        }
    }
}
?>

<?php
if ( isset( $_FILES[ 'arquivo03' ][ 'name' ] ) && $_FILES[ 'arquivo03' ][ 'error' ] == 0 ) {
//    echo 'Você enviou o arquivo: <strong>' . $_FILES[ 'arquivo' ][ 'name' ] . '</strong><br />';
//    echo 'Este arquivo é do tipo: <strong > ' . $_FILES[ 'arquivo' ][ 'type' ] . ' </strong ><br />';
//    echo 'Temporáriamente foi salvo em: <strong>' . $_FILES[ 'arquivo' ][ 'tmp_name' ] . '</strong><br />';
//    echo 'Seu tamanho é: <strong>' . $_FILES[ 'arquivo' ][ 'size' ] . '</strong> Bytes<br /><br />';
// 
    $arquivo_tmp = $_FILES[ 'arquivo03' ][ 'tmp_name' ];
    $nome = $_FILES[ 'arquivo03' ][ 'name' ];
 
    // Pega a extensão
    $extensao = pathinfo ( $nome, PATHINFO_EXTENSION );
 
    // Converte a extensão para minúsculo
    $extensao = strtolower ( $extensao );
 
    // Somente imagens, .jpg;.jpeg;.gif;.png
    // Aqui eu enfileiro as extensões permitidas e separo por ';'
    // Isso serve apenas para eu poder pesquisar dentro desta String
    if ( strstr ( '.jpg;.jpeg;.gif;.png', $extensao ) ) {
        // Cria um nome único para esta imagem
        // Evita que duplique as imagens no servidor.
        // Evita nomes com acentos, espaços e caracteres não alfanuméricos
        $novoNome = uniqid ( time () ) . ".".$extensao;
 
        // Concatena a pasta com o nome
        $destino02 = 'uploads/' . $novoNome;
 
        // tenta mover o arquivo para o destino
        if ( @move_uploaded_file ( $arquivo_tmp, $destino02 ) ) {
//            echo 'Arquivo salvo com sucesso em : <strong>' . $destino . '</strong><br />';
//            echo ' < img src = "' . $destino02 . '" />';
        }
    }
}
?>

<?php
if ( isset( $_FILES[ 'arquivo01' ][ 'name' ] ) && $_FILES[ 'arquivo01' ][ 'error' ] == 0 ) {
//    echo 'Você enviou o arquivo: <strong>' . $_FILES[ 'arquivo' ][ 'name' ] . '</strong><br />';
//    echo 'Este arquivo é do tipo: <strong > ' . $_FILES[ 'arquivo' ][ 'type' ] . ' </strong ><br />';
//    echo 'Temporáriamente foi salvo em: <strong>' . $_FILES[ 'arquivo' ][ 'tmp_name' ] . '</strong><br />';
//    echo 'Seu tamanho é: <strong>' . $_FILES[ 'arquivo' ][ 'size' ] . '</strong> Bytes<br /><br />';
// 
    $arquivo_tmp = $_FILES[ 'arquivo01' ][ 'tmp_name' ];
    $nome = $_FILES[ 'arquivo01' ][ 'name' ];
 
    // Pega a extensão
    $extensao = pathinfo ( $nome, PATHINFO_EXTENSION );
 
    // Converte a extensão para minúsculo
    $extensao = strtolower ( $extensao );
 
    // Somente imagens, .jpg;.jpeg;.gif;.png
    // Aqui eu enfileiro as extensões permitidas e separo por ';'
    // Isso serve apenas para eu poder pesquisar dentro desta String
    if ( strstr ( '.jpg;.jpeg;.gif;.png', $extensao ) ) {
        // Cria um nome único para esta imagem
        // Evita que duplique as imagens no servidor.
        // Evita nomes com acentos, espaços e caracteres não alfanuméricos
        $novoNome = uniqid ( time () ) . ".".$extensao;
 
        // Concatena a pasta com o nome
        $destino03 = 'uploads/' . $novoNome;
 
        // tenta mover o arquivo para o destino
        if ( @move_uploaded_file ( $arquivo_tmp, $destino03 ) ) {
//            echo 'Arquivo salvo com sucesso em : <strong>' . $destino03 . '</strong><br />';
        echo ' < img src = "' . $destino03 . '" />';
        }
    }
}
?>

Com isso, gostaria de saber se há alguma variável, while, loop para poder deixar a imagem.

Lembrando: a lógica é

usuário -> alterar nome

se o nome for alterado, a imagem não precisa ser, porém acontece ao contrário, o caminho da imagem some do banco.

 

Imagem com o que acontece:Veja clicando aqui

 

Obrigado e perdão o texto enorme, quis deixar apenas claro tudo isso. Tenham um bom dia/tarde/noite!!! :)

Share this post


Link to post
Share on other sites

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

  • Similar Content

    • By mm_edilson
      Boa noite, amigos. Estou tentando inserir data completa e hora, assim:
      Segunda, 14 de Junho de 2021, 19:05:23
      Mas está saindo assim: 
      1, 1452021, 19:05:23.
      Segue meu código. Alguém poderia me ajudar a ver o que está errado?
       
      <script type="text/javascript"> function startTime() { var today=new Date(); var year=today.getYear(); if (year<2000) year += (year <1900) ? 1900 : 0 var day=today.getDay(); var month=today.getMonth(); var daym=today.getDate(); if (daym<10) daym="0"+daym var dayarray=new Array("Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"); var montharray=new Array("de Janeiro de ","de Fevereiro de ","de Março de ","de Abril de ","de Maio de ","de Junho de ","de Julho de ","de Agosto de ","de Setembro de ","de Outubro de ","de Novembro de ","de Dezembro de "); var h=today.getHours(); var m=today.getMinutes(); var s=today.getSeconds(); // adicione um zero na frente de números<10 m=checkTime(m); s=checkTime(s); document.getElementById('txt').innerHTML=day+","+daym+month+year+", "+h+":"+m+":"+s; t=setTimeout('startTime()',500); } function checkTime(i) { if (i<10) { i="0" + i; } return i; } </script> </head> </head> <body onload="startTime()"> <div id="txt"></div> </body>  
    • By thiagocarelli
      Bom dia pessoal, Estou travado em um array (imagem), a questão é que preciso criar uma tabela por empresa ( Organization Name )  onde contabilize empresa ++ sempre que o mesmo nome for citado em ( Organization Name ) porem ao mesmo tempo preciso contabilizar separado quando o atendente ( User Name ) seja diferente de outro atendente.. Exemplo..
       
      3 Interações       -       Google      -      João 
      1 Interações       -       Google      -      Joaquim 
      2 Interações       -       Ti Soft       -      Pedro
      7 Interações       -       Exchange  -      João 
       
      Consegui fazer o código que separava por organização mas ele perde o controle das interações por funcionários..
       
      Array ( [success] => 1 [data] => Array ( [0] => Array ( [organization] => Array ( [name] => JOSDF ) [user] => Array ( [name] => Misael Joana ) ) [1] => Array ( [organization] => Array ( [name] => DKGFS ) [user] => Array ( [name] => Misael Joana ) ) ) )  
    • By Jack Oliveira
      Ola pessoal boa noite
       
      Bom pessoal estou fazendo uma função para formatar url de rede social,
      FACEBOOK, INSTAGRAM & TWITTER, não sei se esta da forma correta em fazer.
      Ex: https://www.facebook.com/minha-pagina   quero pegar apenas o final que seria minha-pagina 
      Isso seria tanto no instagram e twitter
       
      Fiz da seguinte forma
      <?php function FormatarUrlRedeSocial($URL){ if (strstr($URL, 'https://facebook.com/') || strstr($URL, 'http://facebook.com/')) { $UrlRedeSocial = explode('facebook.com/', $URL); return $UrlRedeSocial[1]; } elseif (strstr($URL, 'http://') || strstr($URL, 'https://')){ $UrlRedeSocial = explode($URL); $UrlRedeSocial = explode($UrlRedeSocial[1]); return $UrlRedeSocial[0]; } else { return $URL; } } ?> Porem quero que seja apenas uma função unica para todos 
      Tipo
      https://www.facebook.com/<?= FormatarUrlRedeSocial($dados['url_facebook']); ?> https://www.instagram.com/<?= FormatarUrlRedeSocial($dados['url_instagram']); ?> https://www.twitter.com/<?= FormatarUrlRedeSocial($dados['url_twitter']); ?>  
      Bom do porque não usar os link´s direto, bom pois em outras parte que vou pegar este nome no final não poderia ter o link completo
      Então decide fazer uma função onde não vou precisar criar vários campos na tabela sem necessidades. Espero que possam entender o que preciso.
       
      Se puder da uma ajuda fico grato...
    • By Xicara
      Olá boa tarde!
       Eu tenho um jogo e um site para cadastro de contas. E agora estou querendo implementar um sistema VIP de preferencia com dias para acabar! No meu  banco de dados do jogo, tenho a tabela: contas com os campos: id / senha / ip / e agora adicionei o campo vip, o valor é de 1 a 5 e já esta funcional no jogo porém esse beneficio está permanente para os jogadores, minha duvida é: o valor do campo vip tem como eu programar para cada 30 dias zerar novamente automático? Não zerar de todos, mais sim daquele que atingiu os 30 dias, eu estava pensando em adicionar mais um campo: data de inicio, será que tem possibilidade por exemplo o site identificar a data e excluir o valor do campo quando atingir os 30 dias?
      Obrigado pela atenção!
    • By ILR master
      Fala pessoal.
       
      Estou importando um arquivo xml para o meu DB porém, não consigo ler o campo data do xml. Todos os campos são lidos, menos o campo data. No xml ele está nesse formato: 09/06/2021 23:59:00
      Abaixo segue o código que estou usando:
       
      $xml = simplexml_load_file('cupons.xml');
      foreach($xml->coupon as $cupom) {
          echo $cupom->code.'<br>';
          echo $cupom->data.'<br>';
      }
       
      Obrigado!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.