Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ralfinho

Album de fotos

Recommended Posts

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

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

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

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

ñ 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

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

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

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

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

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

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.