Ir para conteúdo
Fórum Script Brasil
  • 0

code que ninguém resolve


biza

Pergunta

Malta isto foi o que eu consegui fazer

<?php 

set_time_limit(0); 
$data = date("Y-m-d"); 

if (isset($_REQUEST['submit'])) 
{ 
$strSQL = 'SELECT id FROM viaturas WHERE id = '.$_GET['id']; // ou o campo de ID que você tenha... 
$rs = mysql_query($strSQL); 
if (mysql_num_rows($rs) == 1) { 

$imagens = $_FILES['arquivo']; 
for($g=0; $g<=7; $g++) 
//for($g=0; $g < sizeof($imagens); $g++) 
// for ($g = 0; $g < count($imagens); $g++) 
if($nome = $_FILES['arquivo']['name'][$g] != ""){ // para campos vazios 
{ 
$nome = $_FILES['arquivo']['name'][$g]; 
$tipo = $_FILES['arquivo']['type'][$g]; 
$tmpname = $_FILES['arquivo']['tmp_name'][$g]; 

$renomear = md5(uniqid(rand(), true)); // nome aleatorio 
$nome_grande = ($renomear . "-g.jpg"); // cria nome da imagem 


$matriz[] = $nome_grande; 


$pasta_imagens = "../cars/"; //diretorio pra onde vai a imagem 
$caminho = $pasta_imagens . $nome; // caminho com nome da imagem e local para guardar 


if(move_uploaded_file($tmpname, $caminho)) // move a tmp_name pro caminho dado 
{ 
list($pontoX, $pontoY, $tipo) = getimagesize($caminho); 
list($pontoX, $pontoY, $tipo) = getimagesize($caminho); 
$img = imagecreatefromjpeg($caminho); 
$largura_maxima = 640; //largura máxima 
$altura_maxima = 480; //altura máxima 

if ($pontoX == $pontoY) { // se a altura e largura originais forem iguais 
$largura = $largura_maxima; 
$altura = $largura_maxima; 
} 
elseif ($pontoX >= $pontoY) { // se a largura for maior que a altura 
$nova_largura = $largura_maxima; 
$nova_altura = ($pontoY*$nova_largura)/$pontoX; 
// mas se depois da redução a altura for maior que $altura_maxima então reduz novamente 
if ($nova_altura >= $altura_maxima) { 
$altura = $altura_maxima; 
$largura = ($nova_largura*$altura)/$nova_altura; 
} 
else { 
$largura = $largura_maxima; 
$altura = ($pontoY*$largura)/$pontoX; 
} 
} 
elseif ($pontoX <= $pontoY) { // se a largura for menor que a altura 
$nova_altura = $altura_maxima; 
$nova_largura = ($pontoX*$nova_altura)/$pontoY; 
// mas se depois da redução a largura for maior que a $largura_maxima então reduz novamente 
if ($nova_largura >= $largura_maxima) { 
$largura = $largura_maxima; 
$altura = ($nova_altura*$largura)/$nova_largura; 
} 
else { 
$altura = $altura_maxima; 
$largura = ($pontoX*$altura)/$pontoY; 
} 
} 

$foto_grande = imagecreatetruecolor($largura, $altura); // aqui eu pego a imagem no caminho e jogo na memoria 
imagecopyresampled($foto_grande, $img, 0, 0, 0, 0, $largura, $altura, $pontoX, $pontoY); // sample da imagem com o tamanho 
imagejpeg($foto_grande, $pasta_imagens . $nome_grande, 100); 

unlink($caminho); // apaga a imagem original 

} // if move_uploaded_file 
} 
$sql_insere= mysql_query("UPDATE viaturas SET imagem1='$matriz[0]', imagem2='$matriz[1]', imagem3='$matriz[2]', imagem4='$matriz[3]', imagem5='$matriz[4]', imagem6='$matriz[5]', imagem7='$matriz[6]', imagem8='$matriz[7]' WHERE id=".$_GET['id']); 

?>

problema:

imagina que fiz inicialmente um insert de 4 imagens, e verifiquei apos enviar as imagens para o banco de dados que tinha mais três imagens para enviar. Vou ao formulário de edição e na posição 5, 6, 7 carrego novas imagens . eu queria que ele no banco de dados com o id pertencente a viatura , não me apagasse as imagens 1, 2 , 3, 4.

Mas imagina que uma das imagens que já existe no banco de dados não é a correcta e eu queria fazer um update de uma certa imagem, gostaria que ela me fizesse um unlink da imagem no destino e me carrega-se a nova.

não estou conseguindo nada disto brother é essa minha necessidade. Se puder me ajuda.

Erros não mostra mas não faz que estou necessitando

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Form? Bom, ai não está o form, mas nele você mexerá muito pouco.

Para já trazer o form preenchido para edição, você precisa de uma consulta na base de dados, e os valores retornados você preenche no value dos inputs.

Para usar esse mesmo arquivo, você apenas mudará o insert na base para um update, e para apagar a antiga imagem caso o usuário suba uma nova, pesquise sobre o comando unlink do PHP. ;)

Link para o comentário
Compartilhar em outros sites

  • 0

ai FIT

já alterei a coisa deste modo :

<?php 
$sql = "SELECT * FROM viaturas  WHERE id = ".$_GET['id'];
$resultado = mysql_query($sql)
or die ("Não foi possível realizar a consulta.");
$linha=mysql_fetch_array($resultado);
?>

<? 
set_time_limit(0);
$data = date("Y-m-d");

if (isset($_REQUEST['submit'])) 
{ 
$imagens = $_FILES['arquivo'];
      
          $pasta_imagens = "../cars/";
          for ($i=0; $i<7;$i++)    {      
            $foto_mini = $pasta_imagens.$arquivo[$i];
           
            //aqui ele vai ver se existe alguma coisa escrita no campo foto_receita na tabela

                        ///É necessario enviar junto ao file, um campo hidden contendo o valor dos campos das fotos no banco de dados pois, se não enviar, haverá sobscrição no banco e a imaghem que já esta cadastrada terá seu valor apagado
            echo "
                  <input type='file' name='arquivo[]'>
";
                                            }//Fimdo for
                                            
                                            if($nome = $_FILES['arquivo']['name'][$i] != ""){ // para campos vazios
{
        $nome = $_FILES['arquivo']['name'][$i];
        $tipo = $_FILES['arquivo']['type'][$i];
        $tmpname = $_FILES['arquivo']['tmp_name'][$i];

        $renomear = md5(uniqid(rand(), true)); // nome aleatorio
        $nome_grande  = ($renomear . "-g.jpg"); // cria nome da imagem
      
        
        $matriz[] = $nome_grande;
        
        
        $pasta_imagens = "../cars/"; //diretorio pra onde vai a imagem
        $caminho = $pasta_imagens . $nome; // caminho com nome da imagem e local para guardar

        //---------------------------------- CRIAR IMAGEM PROPORCIONAL -------------------------------------------

        if(move_uploaded_file($tmpname, $caminho)) // move a tmp_name pro caminho dado
        {
                list($pontoX, $pontoY, $tipo) = getimagesize($caminho);
                $img = imagecreatefromjpeg($caminho);
                $largura_maxima = 640; //largura máxima
                $altura_maxima = 480; //altura máxima

                        if ($pontoX == $pontoY) { // se a altura e largura originais forem iguais
                        $largura = $largura_maxima;
                        $altura = $largura_maxima;
                        }
                        elseif ($pontoX >= $pontoY) { // se a largura for maior que a altura
                        $nova_largura = $largura_maxima;
                        $nova_altura = ($pontoY*$nova_largura)/$pontoX;
                                // mas se depois da redução a altura for maior que $altura_maxima então reduz novamente
                                if ($nova_altura >= $altura_maxima) {
                                $altura = $altura_maxima;
                                $largura = ($nova_largura*$altura)/$nova_altura;
                                }
                                else {
                                $largura = $largura_maxima;
                                $altura = ($pontoY*$largura)/$pontoX;
                                }
                        }
                        elseif ($pontoX <= $pontoY) { // se a largura for menor que a altura
                        $nova_altura = $altura_maxima; 
                        $nova_largura = ($pontoX*$nova_altura)/$pontoY;
                                // mas se depois da redução a largura for maior que a $largura_maxima então reduz novamente
                                if ($nova_largura >= $largura_maxima) {
                                $largura = $largura_maxima;
                                $altura = ($nova_altura*$largura)/$nova_largura;
                                }
                                else {
                                $altura = $altura_maxima; 
                                $largura = ($pontoX*$altura)/$pontoY;
                                }
                        }

                        $foto_grande = imagecreatetruecolor($largura, $altura); // aqui eu pego a imagem no caminho e jogo na memoria
                        imagecopyresampled($foto_grande, $img, 0, 0, 0, 0, $largura, $altura, $pontoX, $pontoY); // sample da imagem com o tamanho
                        imagejpeg($foto_grande, $pasta_imagens . $nome_grande, 100);
                        
                        unlink($caminho); // apaga a imagem original
        
            } // if move_uploaded_file
}// fecha if dos campso vazios
 $sql_insere= mysql_query("UPDATE viaturas SET imagem1='$matriz[0]', imagem2='$matriz[1]', imagem3='$matriz[2]', imagem4='$matriz[3]', imagem5='$matriz[4]', imagem6='$matriz[5]', imagem7='$matriz[6]', imagem8='$matriz[7]' WHERE id=".$_GET['id']);
}


$sql = "UPDATE viaturas SET modelo='".$_POST['modelo']."', preço='".$_POST['preço']."', quilometros='".$_POST['quilometros']."', velocidades='".$_POST['velocidades']."', cilindrada='".$_POST['cilindrada']."', cor_car='".$_POST['cor_car']."', cor_int='".$_POST['cor_int']."', potencia='".$_POST['potencia']."', portas='".$_POST['portas']."', ano='".$_POST['ano']."',  data='$data',  observacoes='".$_POST['observacoes']."', cat_id='".$_POST['cat']."', id_marca='".$_POST['marc']."',id_combustivel='".$_POST['comb']."' WHERE id = ".$_GET['id'];

$sql = mysql_query($sql)
or die ("Houve erro na gravação dos dados.");

                     
 $carroId = mysql_insert_id();
  foreach ( $_POST['equipamentos'] as $equipamentoId )
  {
  
          mysql_query( "UPDATE viatura_equipa  SET viatura_id='$carroId', equipamento_id='$equipamentoId'" );
  }
  
                
echo "<meta http-equiv='refresh' content='0;URL=index2.php?pag=via'>";
}
 ?>

ai FIT esse foi alteração que você me disse esta tudo ai mas a situação do unlink não estou conseguindo implementar além disso devo estar a cometer algum erro porque ele não me esta a fazer registo na bd nem esta a enviar ficheiro para o path

Editado por biza
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...