Rob_Bor 0 Denunciar post Postado Janeiro 11, 2011 Boa noite pessoal! Eu consegui cadastrar imagens em um diretório, e gravar somente o caminho dela no MySQL. e agora estou tentando exibi-las do banco. fazendo while desta forma: while($inseto = mysql_fetch_object($sql)) { echo "<img src='fotos/insetos/".$inseto->foto."' alt='Foto de Exibição' /><br />"; } Ele aparece todas as imagens mais com aquele X de nao encontrada, que os navegadores colocam. O direório está correto, pois seu eu exibo em HTML sem php. ela aparece normalmente. Dai, fui verificar a codigo fonte da página, ele aparece assim: <img src='fotos/insetos/Array' alt='Foto de Exibição' /> dentro do while ->foto é o campo da minha tabela que armazena o array com o nome da imagem. Alguem pode me ajudar? Valew galera... Abraços!! Compartilhar este post Link para o post Compartilhar em outros sites
ell_cpu 0 Denunciar post Postado Janeiro 11, 2011 Explique melhor!! Qual o conteudo do array foto? Tenta pegar so u elemento do array foto: $inseto->foto[0]. Compartilhar este post Link para o post Compartilhar em outros sites
Rob_Bor 0 Denunciar post Postado Janeiro 12, 2011 Obrigado pelo comentário, mais vamos lá Explicando melhor, eu fiz o cadastro da imagem e dos outros dados no banco de dados dessa forma. CADASTRANDO DADOS DO POST if ($_POST['cadastrar']){ $error = array(); // adicionei esta linha aqui. // recuperando os dados do POST $nome = $_POST['nome_inseto']; $foto = $_FILES["foto"]; $informacoes = $_POST['informacoes_inseto']; $tratamento = $_POST['tratamento_inseto']; // Se a foto tiver sido selecionada if(!empty($foto["name"])) { // Largura máxima em pixels $largura = 10000; // Altura máxima em pixels $altura = 10000; // Tamanho maximo do arquivo em bytes $tamanho = 10000000; if (!preg_match('/^image\/(pjpeg|jpeg|png|gif|bmp)$/', $foto['type'])){ $error[1] = "Isso não é uma imagem."; } // Pega as dimensões da imagem $dimensoes = getimagesize($foto["tmp_name"]); // Verifica se a largura da imagem é maior que a largura permitida if($dimensoes[0] > $largura) { $error[2] = "A largura da imagem não deve ultrapassar ".$largura." pixels"; } // verificar se a altura da imagem é maior que a permitida if($dimensoes[1] > $altura) { $error[3] = "Altura da imagem não deve ultrapassar ".$altura." pixels"; } // Verifica se o tamanho da imagem é maior que o permitido if($foto["size"] > $tamanho) { $error[4] = "A imagem deve ter no máximo ".$tamanho." bytes"; } // Se não houver nenhum erro if(count($error) == 0) { // Pega extensão da imagem preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $foto["name"], $ext); // Gera um nome único para a imagem $nome_imagem = md5(uniqid(time())) . "." . $ext[1]; // Caminho onde ficara a imagem $caminho_imagem = "./fotos/insetos/" . $nome_imagem; // Faz o upload da imagem para seu respectivo caminho move_uploaded_file($foto["tmp_name"], $caminho_imagem); $sql = mysql_query("INSERT INTO tb_cad_inseto VALUES (NULL, '".$nome."','".$foto."', '".$informacoes."', '".$tratamento."', NULL)")or die(mysql_error()); // Se os dados foram inseridos com sucesso if($sql) { echo "Dados Inseridos com Sucesso"; {/php} <img src="lay/images/sucesso.png"> {php} } else { echo "Erro! O Erro ocorreu no cadastro dos arquivos para o banco."; } } // Se houver mensagens de erro, exibe-as if (count($error) != 0) { foreach ($error as $erro) { echo $erro . "<br />"; } } } } consegui cadastrar, normalmente a foto na minha pasta e o array dela no banco de dados conforme essa imagem. Agora estou tentando exibir todas minhas imagens, mais nao consigo. EXIBINDO while($inseto = mysql_fetch_object($sql)) { echo "<img src='fotos/insetos/".$inseto->foto."' alt='Foto de Exibição' /><br />"; } Entendeu melhor? Ninguem pessoal? Por favor, ja tentei de todas as formas... e nada :) Compartilhar este post Link para o post Compartilhar em outros sites
smloUIS 0 Denunciar post Postado Janeiro 12, 2011 while($inseto = mysql_fetch_object($sql)) { echo "<img src='fotos/insetos/".$inseto->foto."' alt='Foto de Exibição' /><br />"; } não intendi nada, mais tenta isso. $resposta = mysql_query("SELECT * FROM fotos ORDER BY pk_inseto ASC"); while($linha = mysql_fetch_array($resposta)) { $inseto = $linha['inseto'] $exibir = "<img src='fotos/insetos/".$inseto."' alt='Foto de Exibição' /><br />"; } echo $exibir ; você ajeita ai. E eu nem testei. (y) Compartilhar este post Link para o post Compartilhar em outros sites
Nícolas 4 Denunciar post Postado Janeiro 12, 2011 Cara o problema ta no seu INSERT. $sql = mysql_query("INSERT INTO tb_cad_inseto VALUES (NULL, '".$nome."','".$foto."', '".$informacoes."', '".$tratamento."', NULL)")or die(mysql_error()); O valor não seria $nome_imagem? // Gera um nome único para a imagem $nome_imagem = md5(uniqid(time())) . "." . $ext[1]; $foto é um Array esqueceu? $foto = $_FILES["foto"]; $foto["name"]; // $_FILES["foto"]["name"] $foto["type"]; // $_FILES["foto"]["type"] $foto["tmp_name"]; // $_FILES["foto"]["tmp_name"] Por isso ele gravou o valor Array no banco de dados. Compartilhar este post Link para o post Compartilhar em outros sites
ell_cpu 0 Denunciar post Postado Janeiro 12, 2011 O Nicolas já respondeu sua pergunta!! Eh isso mesmo q ele falou. Substitui isso: $sql = mysql_query("INSERT INTO tb_cad_inseto VALUES (NULL, '".$nome."','".$foto."', '".$informacoes."', '".$tratamento."', NULL)")or die(mysql_error()); Por isso: $sql = mysql_query("INSERT INTO tb_cad_inseto VALUES (NULL, '".$nome."','".$_FILES["foto"]["name"]."', '".$informacoes."', '".$tratamento."', NULL)")or die(mysql_error()); OU simples mente substitua isso: $foto= $_FILES["foto"]; Por isso: $foto = $_FILES["foto"]["name"]; Tenta ai! Compartilhar este post Link para o post Compartilhar em outros sites
Rob_Bor 0 Denunciar post Postado Janeiro 14, 2011 E ai pessoal, desculpe a demora pra responde. fiquei fora por uns dias... mais já resolvi o problema. no lugar de foto coloquei $imagem.. que ja tinha nome da foto.. daria no mesmo do que vocês me explicaram aii.. :) valew pessoal, muito obrigado... [tópico resolvido] =D Compartilhar este post Link para o post Compartilhar em outros sites