ralfinho 0 Denunciar post Postado Agosto 2, 2009 Por favor ajudem, quero saber como faço para exibir as fotos de uma determinada pasta; ai vai banco de dados CREATE TABLE `eventos` ( `id` int(11) NOT NULL auto_increment, `nome` text NOT NULL, `local` text NOT NULL, `data` text NOT NULL, `foto01` text NOT NULL, `pasta` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ; conectdb.php <? $conexao = mysql_connect ("localhost","login","senha") OR die (mysql_error()); // Conectando a mysql_select_db ("banco") OR die (mysql_error()); // Conectando em uma base de dados ?> cadastrar.php <? include("verifica.php")?> <STYLE type="text/css"> <!-- body, p, td {font-size: 8pt; font-family: Verdana; color: #FFFFFF} A:link{color:FFFFFF;text-decoration:none} A:visited{color:FFFFFF;text-decoration:none} --> </STYLE> <style fprolloverstyle>A:hover {color: #FFFFFF; text-decoration: underline}</style> <body bgcolor="#333333"> <form action="cadastrar_db.php" method="post" enctype="multipart/form-data"> <div align="center" class="style6"></div> <table width="512" border="0" align="center" cellpadding="5" cellspacing="1"> <tr> <th width="206" align="right" scope="col"><div align="right"> <font size="1">Nome:</font></div></th> <th width="392" scope="col"><div align="left"> <input name="nome" type="text" id="nome" /> </div></th> </tr> <tr> <th align="right" scope="col"> <font size="1">Pasta de destino:</font></th> <th scope="col"><div align="left"> <input name="nomedapasta" type="text" id="nomedapasta" /> </div></th> </tr> <tr> <th align="right" scope="col"><div align="right"><font size="1">Foto Destaque:</font></div></th> <th scope="col"> <div align="left"> <input name="foto01" type="file" id="foto01" style="style2" /> </div></th></tr> <tr> <th align="right" scope="col"><font size="1">Local:</font></th> <th align="left" scope="col"><input name="local" type="text" id="local" /></th> </tr> <tr> <th align="right" valign="top" scope="col"><div align="right"> <font size="1">Data:</font> </div> </th> <th align="left" scope="col"><div align="left"> <input name="data" value="<? echo date("d/m/Y")?>" type="text" id="data" /> </div> </th> </tr> <tr> <th scope="col"> </th> <th scope="col"><div align="left"> <input type="submit" name="Submit" value="Cadastrar" /> </div></th> </tr> </table> </form> cadastrar_db.php <? include("verifica.php")?> <? include("conectdb.php")?> <style type="text/css"> <!-- body { background-image: url(); } --> </style><? // inicia criação de pasta if($nomedapasta != ""){ $pasta = @mkdir("eventos/$nomedapasta", 0777); } // fim da criação da pasta // inicia a função para enviar a foto if($pasta == "$nomedapasta" AND $foto01 != ""){ if (copy($foto01,"eventos/$nomedapasta/".$foto01_name)){}else{ echo ("<BR><div align='center'><font face='$fonte' size='$tamanhofonte'><b>Erro no enviar a foto!</b></font></div><BR>"); } } // termina a função para enviar a foto //conecta no banco $pasta = $_POST['pasta']; $id = $_POST['id']; $nome = $_POST['nome']; $local = $_POST['local']; $data = $_POST['data']; $foto01 = $_POST['foto01']; $query = "INSERT INTO eventos (nome, local, data, pasta, foto01) VALUES ('$nome','$local','$data','$nomedapasta','$foto01_name')"; mysql_query($query) or die (mysql_error()); mysql_close();//fecha conexão ?> <? echo "<center><font size='3'>Cadastrado com sucesso"; ?> ver.php <? include("verifica.php")?> <style type="text/css"> <!-- .style1 {font-family: Verdana, Arial, Helvetica, sans-serif} a { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; } a:link { color: #FFFFFF; text-decoration: none; } a:visited { text-decoration: none; color: #FFFFFF; } a:hover { text-decoration: underline; color: #FFFF00; } a:active { text-decoration: none; } body,td,th { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: #000000; } .style3 {color: #000000} --> </style> <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td bgcolor="#CCCCCC"><div align="center" class="style1"></div></td> </tr> </table> <? require ("conectdb.php"); $sql = "SELECT * FROM eventos ORDER BY id DESC"; $limite = mysql_query("$sql"); while ($sql = mysql_fetch_array ($limite) ) { $pasta = $sql['pasta']; $id = $sql['id']; $nome = $sql['nome']; $local = $sql['local']; $data = $sql['data']; $foto01 = $sql['foto01']; ?> <style type="text/css"> <!-- .style1 { font-size: 18px; font-weight: bold; } body,td,th { font-family: Arial, Helvetica, sans-serif; } --> </style> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <th scope="col"><table width="100%" border="0" align="center" cellpadding="5" cellspacing="0"> <tr> <th width="74" scope="col"><img src="eventos/<? echo"$pasta";?>/<? echo"$foto01";?>" width='120' height="90" border="2" bordercolor='#FF6600'/></th> <th width="1026" align="left" valign="top" scope="col"><table width="100%" border="0" cellpadding="0" cellspacing="5"> <tr> <th scope="col"><div align="left">Nome: <?php echo $sql['nome'] ?></span></div></th> </tr> <tr> <th scope="col"><div align="left">Local: <?php echo $sql['local'] ?></div></th> </tr> <tr> <th scope="col"><div align="left">Data: <span class="style3"><?php echo $sql['data'] ?></a></span></div></th> </tr> </table> </th> <th width="101" align="left" valign="top" scope="col"> </th> </tr> <tr> <th height="24" scope="col"> </th> <th align="left" valign="top" scope="col"> </th> <th align="center" valign="top" bgcolor="#333333" scope="col"><a href="album.php?<? echo"id=$id";?>">Ver fotos</a></th> </tr> </table> </th> </tr> </table> <hr width="95%" color="#CCCCCC" /> <? } ?> no caso agora faltaria criar a página album.php, e o script que faça exibir as fotos, eu queria que as fotos exibissem tipo esse album http://www.baladasdailha.com.br/eventos_popup.php?id_evento=1315. Abraço. Compartilhar este post Link para o post Compartilhar em outros sites
Red FeniX 4 Denunciar post Postado Agosto 2, 2009 Parceiro, Você pode usar um opendir() em conjunto com um readdir() pra ler o diretório e depois montar um while() pra exibir as fotos. Existe ainda a função glob(), porém ela é muito específica. Falo Compartilhar este post Link para o post Compartilhar em outros sites
ralfinho 0 Denunciar post Postado Agosto 2, 2009 Parceiro, Você pode usar um opendir() em conjunto com um readdir() pra ler o diretório e depois montar um while() pra exibir as fotos. Existe ainda a função glob(), porém ela é muito específica. Falo Ok, mais tipo eu sou muito novato e não tenho nem ideia de como fazer isto, peço a ajuda de vocês. Abraço. Compartilhar este post Link para o post Compartilhar em outros sites
Red FeniX 4 Denunciar post Postado Agosto 2, 2009 Amigo, Não vamos chegar aqui e montar o código pra ti ok? Diga qual sua dúvida que iremos te ajudar no código. Pra usar as funções que te passei, você faz: $dir = opendir("diretorio"); while (false !== ($arquivo = readdir($dir))) { // Aqui você faz a exibição } PS.: Usei a estrutura indicada pelo Manual para fazer o while. Falo Compartilhar este post Link para o post Compartilhar em outros sites
ralfinho 0 Denunciar post Postado Agosto 2, 2009 ñ consegui será que da pra me explicar direito? eu tentei fazer isto mais ñ consegui. Abraço. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Galeria de fotos</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <? require ("conectdb.php"); $sql = "SELECT * FROM eventos $dbtb WHERE id='$id'"; $limite = mysql_query("$sql"); while ($sql = mysql_fetch_array ($limite) ) { $pasta = $sql['pasta']; $id = $sql['id']; $nome = $sql['nome']; $local = $sql['local']; $data = $sql['data']; $foto01 = $sql['foto01']; ?> <table width="600" border="0" cellspacing="0" cellpadding="0"> <tr> <td><?php echo $sql['nome'] ?> - <?php echo $sql['data'] ?></td> </tr> <tr> <td> <?php $dir = opendir("$pasta"); while (false !== ($arquivo = readdir($dir))) { // Aqui você faz a exibição } ?> </td> </tr> </table> <? } ?> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Agosto 2, 2009 Uma pergunta... Você gravou o nome e o caminho das fotos no banco de dados? Explique o que tem em cada um dos campos do seu banco de dados. CREATE TABLE `eventos` ( `id` int(11) NOT NULL auto_increment,// id do evento, certo? `nome` text NOT NULL, `local` text NOT NULL, `data` text NOT NULL, `foto01` text NOT NULL, // o que está gravado neste campo? `pasta` text NOT NULL, // o que está gravado neste campo? PRIMARY KEY (`id`) ) ENGINE=InnoDB Se você não gravou o nome das fotos no banco de dados, sugiro criar uma tabela contendo o local das fotos, o nome das fotos e o id do evento ao qual elas se relacionam. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Red FeniX 4 Denunciar post Postado Agosto 2, 2009 Uma pergunta... Você gravou o nome e o caminho das fotos no banco de dados? Explique o que tem em cada um dos campos do seu banco de dados. CREATE TABLE `eventos` ( `id` int(11) NOT NULL auto_increment,// id do evento, certo? `nome` text NOT NULL, `local` text NOT NULL, `data` text NOT NULL, `foto01` text NOT NULL, // o que está gravado neste campo? `pasta` text NOT NULL, // o que está gravado neste campo? PRIMARY KEY (`id`) ) ENGINE=InnoDB Se você não gravou o nome das fotos no banco de dados, sugiro criar uma tabela contendo o local das fotos, o nome das fotos e o id do evento ao qual elas se relacionam. Carlos Eduardo Ae matias, o sistema dele funciona mais ou menos assim: Ao criar um evento, ele cria uma pasta para que as fotos do evento sejam inseridas dentro dela. Ae ele salva no BD a foto 1 (a capa) e a pasta onde tá as imagens daquele evento. ñ consegui será que da pra me explicar direito? eu tentei fazer isto mais ñ consegui. Abraço. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Galeria de fotos</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <? require ("conectdb.php"); $sql = "SELECT * FROM eventos $dbtb WHERE id='$id'"; $limite = mysql_query("$sql"); while ($sql = mysql_fetch_array ($limite) ) { $pasta = $sql['pasta']; $id = $sql['id']; $nome = $sql['nome']; $local = $sql['local']; $data = $sql['data']; $foto01 = $sql['foto01']; ?> <table width="600" border="0" cellspacing="0" cellpadding="0"> <tr> <td><?php echo $sql['nome'] ?> - <?php echo $sql['data'] ?></td> </tr> <tr> <td> <?php $dir = opendir("$pasta"); while (false !== ($arquivo = readdir($dir))) { // Aqui você faz a exibição } ?> </td> </tr> </table> <? } ?> </body> </html> Bom, você deve mudar algumas coisas: O que é isso: $dir = opendir("$pasta"); ???? Coloque assim: $dir = opendir($pasta); Você deve trocar essa parte pelo código que fará a exibição das fotos: // Aqui você faz a exibição Algo como: echo "<img src='{$arquivo}' alt='imagem'>"; Falo! Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Agosto 3, 2009 Ao criar um evento, ele cria uma pasta para que as fotos do evento sejam inseridas dentro dela. Ae ele salva no BD a foto 1 (a capa) e a pasta onde tá as imagens daquele evento. Ok. Mas não seria muito mais fácil já salvar no banco de dados o nome das fotos, já que salva estes dados? Já que vai fazer a consulta no banco de dados, consulta o nome das fotos para exibir, sem ter que fazer opendir ou qualquer outra coisa... Muito mais simples... Mas fica a teu critério... Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Red FeniX 4 Denunciar post Postado Agosto 3, 2009 A meu critério? Não é meu sistema, é dele! http://forum.imasters.com.br/public/style_emoticons/default/yay.gif Eu não faria desse jeito que ele tá fazendo de jeito nenhum, porque é muito trabalhoso. Faria do jeito que tu tá dizendo matias, mais simples! Era só criar duas tabelas, eventos e fotos_eventos e depois relacionar elas com JOIN. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Agosto 3, 2009 Mas fica a teu critério... Quando eu disse 'a teu critério' estava me referindo a ele, autor do tópico. Agora, vendo a sua resposta e relendo a minha, realmente deu a impressão que estava fazendo a sugestão para você... Corrigindo... Mas fica a critério do criador do tópico. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
ralfinho 0 Denunciar post Postado Agosto 3, 2009 Ao criar um evento, ele cria uma pasta para que as fotos do evento sejam inseridas dentro dela. Ae ele salva no BD a foto 1 (a capa) e a pasta onde tá as imagens daquele evento. Ok. Mas não seria muito mais fácil já salvar no banco de dados o nome das fotos, já que salva estes dados? Já que vai fazer a consulta no banco de dados, consulta o nome das fotos para exibir, sem ter que fazer opendir ou qualquer outra coisa... Muito mais simples... Mas fica a teu critério... Carlos Eduardo certo, mais como eu trabalho com várias fotos e albuns, não seria muito trabalhoso ficar salvando no banco o nome das fotos? Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Agosto 3, 2009 não seria muito trabalhoso ficar salvando no banco o nome das fotos? Aí é uma questão de opinião... Está sendo trabalhoso exibir assim??? Se tivesse o nome e o caminho das fotos gravada no banco de dados ficaria mais fácil??? Tudo depende da sua aplicação, mas na minha opinião, a melhor forma é salvar o nome e o caminho (caso não seja igual para todas) no Banco de Dados, porque com uma consulta você resolve a situação. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
ralfinho 0 Denunciar post Postado Agosto 3, 2009 não seria muito trabalhoso ficar salvando no banco o nome das fotos? Aí é uma questão de opinião... Está sendo trabalhoso exibir assim??? Se tivesse o nome e o caminho das fotos gravada no banco de dados ficaria mais fácil??? Tudo depende da sua aplicação, mas na minha opinião, a melhor forma é salvar o nome e o caminho (caso não seja igual para todas) no Banco de Dados, porque com uma consulta você resolve a situação. Carlos Eduardo a tá em tão o jeito que você esta falando em gravar o nome das imagens no banco eh esse ex: <img src="<? echo"eventos/$foto01";?>" width="201" height="130" align="left"> <img src="<? echo"eventos/$foto02";?>" width="201" height="130" align="left"> <img src="<? echo"eventos/$foto03";?>" width="201" height="130" align="left"> <img src="<? echo"eventos/$foto04";?>" width="201" height="130" align="left"> e assim por diante? Compartilhar este post Link para o post Compartilhar em outros sites
Red FeniX 4 Denunciar post Postado Agosto 3, 2009 Não !! Tipo, Duas tabelas: eventos id | nome 1 | evento1 2 | evento2 fotos_eventos id | id_evento | caminho 1 | 1 | imagens/imagem1.png 2 | 1 | imagens/imagem2.png 3 | 2 | imagens/imagem3.jpg Ae você faz uma relação pra pegar todas as relacionadas, por exemplo, ao evento 1: $sql = "SELECT * FROM fotos_eventos WHERE id_evento='1'"; $q = mysql_query($sql); while($arr = mysql_fetch_array($q)) { // exibe as imagens aqui } Falo Compartilhar este post Link para o post Compartilhar em outros sites
ralfinho 0 Denunciar post Postado Agosto 4, 2009 Tipo eu ñ entendi nada, desculpa mais sou novato, ai fica dificil, ainda mais esse sistema de foto. tipo eu ja criei a página com um iframe das fotos eventos.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>WwW.Festainfoco.CoM.Br</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link href="style.css" rel="stylesheet" type="text/css"> </head> <body> <? require ("conectdb.php"); $sql = "SELECT * FROM eventos $dbtb WHERE id='$id'"; $limite = mysql_query("$sql"); while ($sql = mysql_fetch_array ($limite) ) { $pasta = $sql['pasta']; $id = $sql['id']; $nome = $sql['nome']; $local = $sql['local']; $data = $sql['data']; $foto01 = $sql['foto01']; ?> <table width="730" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td height="101"> </td> </tr> <tr> <td height="47"><span class="titulocobertura"><strong><?php echo $sql['nome'] ?></strong></span><br> <span class="texto"><?php echo $sql['data'] ?> - <?php echo $sql['local'] ?></span></td> </tr> <tr> <td> <iframe width="750" height="342" name="fotos" src="eventos_fotos.php?<? echo"id=$id";?>" border="0" frameborder="0"></iframe></td> </tr> </table> <? } ?> </body> </html> e a iframe onde ficaram as fotos eventos_fotos.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>WwW.Festainfoco.CoM.Br</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link href="style.css" rel="stylesheet" type="text/css"> </head> <body> <? require ("conectdb.php"); $sql = "SELECT * FROM eventos $dbtb WHERE id='$id'"; $limite = mysql_query("$sql"); while ($sql = mysql_fetch_array ($limite) ) { $pasta = $sql['pasta']; $id = $sql['id']; $nome = $sql['nome']; $local = $sql['local']; $data = $sql['data']; $foto01 = $sql['foto01']; ?> <table width="713" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="713" height="284"><table width="357" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="357" height="272" bgcolor="#FFFFFF"><div align="center"><img src="eventos/<? echo"$pasta";?>/<? echo"$foto01";?>" width="350" height="264" align="left"></div></td> </tr> </table></td> </tr> </table> <? } ?> </body> </html> eu até coloquei a foto01 que é a foto principal de cada album. por favor se alguem poder me soccorrer, tipo esse album http://www.baladasdailha.com.br/eventos_popup.php pelo o que eu vi ele jera de uma imagem as outras, e ainda falta a parte de paginação. Abraço Compartilhar este post Link para o post Compartilhar em outros sites
Red FeniX 4 Denunciar post Postado Agosto 4, 2009 Amigo, Já te mostramos diversas soluções. Em que você ainda tem dúvida? Aconselho tu começar do zero esse sistema e fazer do jeito que eu e o matias exemplificamos. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Diego Macêdo 6 Denunciar post Postado Agosto 6, 2009 ralfinho, estou montando um sistema de galeria de fotos pra eventos tbm, dá uma olhada no meu tópico, que eu já fiz essa parte de exibição das fotos, só estou resolvendo ainda a parte de paginação delas. A minha forma de exibir as fotos, está sendo exatamente igual a sua (lendo uma pasta e exibindo os arquivos, sem utilizar BD) - Upload + ZIP + Fotos + Manipulação de Imagens (Sistema Completo) Boa sorte! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites