Dae galera.. blz?
Bem.. a id é chave primária sim...
Olhem como ta meu banco:
e aqui meu código que vem depois do meu formulário:
<?
include "valida.php3";
include "config.php3";
// Declara variáveis padrão
$dir = "produto/"; // Pasta para onde as fotos serão upadas
$ext = array("gif","jpg","png","GIF","JPG","PNG"); // Extensões aceitas
$t_maximo = 1000000; // Tamanho Máximo da Imagem Aceito - em bytes
$erro = ""; // Sem erros
$descricao = $_POST['descricao']; //Pega valor do Formulário
$id_tamanho = $_POST['id_tamanho']; //Pega valor do Formulário
// Parametros de medida das Imagens
$largura_mini = 80;
$altura_mini = 60;
$largura_original = 350;
$altura_original = 263;
// Obtendo Informação do Arquivos
$f_name = $_FILES['foto']['name']; // Nome do Arquivo
$f_tmp = $_FILES['foto']['tmp_name']; // Temp do Arquivo
$f_type = $_FILES['foto']['type']; // Tipo do Arquivo
$f_tamanho = $_FILES["foto"]["size"]; // Tamanho do Arquivo
$name = $f_name;
// Fazendo Testes
if ($f_name == "") { //Se é vazio
$erro = "Não foi selecionado nenhum arquivo.";
} elseif (!in_array(substr($name, -3),$ext)) { //Se é imagem
$erro = "O arquivo selecionado não é uma Imagem.";
} elseif (ereg("[][><}{)(:;,!?*%&#@]", $name)) { //Se não tem carácteres inválido
$erro = "O nome do arquivo contém caracteres inválidos";
} elseif ($f_tamanho > $t_maximo) { //Se a imagem é muito grande
$erro = "O tamanho máximo permitido é de 1MB";
}
// Inicia processo de upload e gravação no banco se não tiver nenhum erro com a imagem.
if ($erro == "") {
// Grava no Banco de Dados o Cadastro
$x = mysql_query("INSERT INTO produtos (descricao,id_tamanho) VALUES ('$descricao,$id_tamanho')");
$id = mysql_insert_id();
// Nome do arquivo da miniatura e Original
$nome_original = explode(".", $f_name);
$novo_nome = $id.".".$nome_original[1];
$novo_nome_mini = $id."_mini".".".$nome_original[1];
// Cria uma nova Imagem
$imagem_orig = ImageCreateFromJPEG($f_tmp);
$pontoX = ImagesX($imagem_orig); //Largura
$pontoY = ImagesY($imagem_orig); //Altura
// Cria a Miniatura
$imagem_mini = ImageCreateTrueColor($largura_mini, $altura_mini);
$imagem_original = ImageCreateTrueColor($largura_original, $altura_original);
// Copia as Imagens Original e Miniatura para Pasta
ImageCopyResampled($imagem_mini, $imagem_orig, 0, 0, 0, 0, $largura_mini+1, $altura_mini+1, $pontoX, $pontoY);
ImageCopyResampled($imagem_original, $imagem_orig, 0, 0, 0, 0, $largura_original+1, $altura_original+1, $pontoX, $pontoY);
// Salva a Imagem na Pasta
ImageJPEG($imagem_mini, $dir.$novo_nome_mini);
ImageJPEG($imagem_original, $dir.$novo_nome);
// Libera a Memória
ImageDestroy($imagem_orig);
ImageDestroy($imagem_mini);
ImageDestroy($imagem_original);
echo "Cadastrado com Sucesso!";
echo "<p><a href= lista_produto.php3>Clique aqui para voltar a lista de Produtos.</a></p>";
echo $id;
} else {
echo "Erro ao Cadastrar:";
echo "<p>$erro</p>";
echo "<p><a href= lista_produto.php3>Clique aqui para voltar a lista de Produtos.</a></p>";
}
Então.. Petry, como funciona esse esquema do print para ver o resultado, através do echo?? (desculpe a ignorância, to meio confuso ainda com o php, to tentando juntar as dicas pra montar um arquivo só)
Então, ele ta retornando como cadastrado com sucesso, mais quando após o insert se eu imprimir o
$id = mysql_insert_id();, o $id sempre me retorna como 0, e quando verifico no PHPMyAdmin, não tem nada cadastrado. A não ser que eu cadastre manualmente pelo MyAdmin, O que eu tenho a impressão é que ele não ta iniciando a contagem das id's, fica sempre no 0 (zero).
Eu tinha pensando em acrescentar um campo na tabela com o nome da foto, mais achei desnecessário levando em consideração que o nome do arquivo teria o mesmo no me da id, portando na hora de mostrar a foto correspondente ao id, somente puxaria
$x['id].".jpg" ... Não esta correto meu raciocionio??
Tentei procurar como "renomear", "upload", mais não encontrei nada relacionado.
No aguardo e desde já agradeço a colaboração.
Abraços,
Possamai