Dúvida em alteração com relação a imagens
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](https://i58.servimg.com/u/f58/18/54/83/38/mestre10.png)
Obrigado e perdão o texto enorme, quis deixar apenas claro tudo isso. Tenham um bom dia/tarde/noite!!! :)Discussão (1)
Carregando comentários...