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

Preciso de ajuda


Camila Cristina

Pergunta

Olá pessoal,

Preciso muito da ajuda de alguém que possa me dizer como fazer para resolver umas situações na galeria de fotos que estou desenvolvendo. As fotos têm legenda e não estou conseguindo associar as legendas às fotos que o caminho vem do banco de dados e o loop vem da pasta onde estão os arquivos. Outra coisa que queria conseguir fazer com que a legenda fique embaixo da sua propria foto. No teste que fiz as legendas não estão junto das fotos corretas e quando dou uma quebra de linha para a legenda ficar embaixo da foto desconfigura tudo, faz a quebra nas fotos junto, tipo o normal é ficar 5 fotos por linha, mas quando coloco a quebra fica 1 foto por linha. No mais está tudo funcionando corretamente.

Quem puder me ajudar agradeço muito. Segue o código abaixo :

<?

header('Content-Type: text/html; charset=utf-8');

include "config.inc";

$cod = $_POST["id"];

$SQL = " SELECT distinct a.titulo titulo, a.descricao descricao, a.local local, a.data data, f.arquivo arquivo, f.legenda legenda FROM albums a, albums_photos f where a.id = '$cod' ";

$result_id = mysql_query($SQL) or die(mysql_error());

$totaliza = mysql_num_rows($result_id);

while($dados = mysql_fetch_array($result_id))

{

$id = $dados["id"];

$titulo = $dados["titulo"];

$descricao = $dados["descricao"];

$data = $dados["data"];

$data = substr($data, 8, 2) ."/". substr($data, 5, 2) ."/". substr($data, 0, 4);

$local = $dados["local"];

$caminho = $dados["arquivo"];

$legendas[] = $dados['legenda'];

}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns=http://www.w3.org/1999/xhtml">

<head>

<title>Untitled Document</title>

<style type="text/css">

body table tr td {

color: #006CB7;

font-family: Verdana, Geneva, sans-serif;

font-size: 12px;

text-align: center;

}

</style>

<link rel="stylesheet" href='css/hoverbox.css' type="text/css" media="screen, projection" />

</head>

<body>

<table width="775" border="0" align="center">

<tr>

<td height="119" bgcolor="#EFF2F1">Galeria de Fotos</td>

</tr>

<tr>

<td align="center">

<br /><br />

<p>Evento <? echo $titulo; ?></p>

<p>Descri&ccedil;&atilde;o <? echo $descricao; ?></p>

<p>Local <? echo $local; ?></p>

<p>Data <? echo $data; ?></p>

<p>Legenda <? echo $legenda; ?></p>

<p>

<?php

$pag=$_GET['pag];

if(!$pag)

{

$pag=1;

}

$rpp=10; //Quantidade de imagens por página

$inicio=$pag * $rpp - $rpp;

//PASTA DAS IMAGENS

$dir = ("uploads/");

$abrir = opendir($dir);

$path="uploads/";

$diretorio=dir($path);

while ($arquivo = $diretorio->read())

{

$caminho_arquivo = $path.$arquivo;

$i = 0;

for ($i=0;$i<$totaliza;$i++) {

if ($caminho[$i] == $caminho_arquivo) {

}

}

}

$diretorio->close();

$arquivos = array();

//LOCALIZA APENAS AS IMAGENS QUE INICIAM COM p

foreach (glob($dir."*") as $file)

{

if (($file != '.') && ($file != '..'))

{

//FORMATO DAS IMAGENS

if ((!is_dir($file)) && (eregi('(jpeg|jpg|bmp|png|gif)$', $file)))

{

$arquivos[] = $file;

}

}

}

$total = count($arquivos); //total de arquivos

$paginas = ceil ($total/$rpp); //arquivos por pagina 30/10=3

?>

<ul class="hoverbox">

<?

for ($i = $inicio; $i < $inicio+$rpp && $i < $total; $i++)

{

if ($i%5 == 0)

{

echo "<br><br>";

}

//PEGA A PROPORÇÃO DA IMAGEM

$imgsize = GetImageSize ("$arquivos[$i]");

list($width, $height) = getimagesize("$arquivos[$i]");

if ($width > $height)

{

$img_w = 120; //$imgsize[0];

$img_h = 100; //$imgsize[1];

}

else

{

$img_w = 100; //$imgsize[0];

$img_h = 120; //$imgsize[1];

}

$img_x = $imgsize[0];

$img_y = $imgsize[1];

?>

<li>

<?

echo'<a href="#"><img src="'.$arquivos[$i].'" alt=""

"/><img src="'.$arquivos[$i].'" alt="" class="preview"

onClick="window.open(\''.$arquivos[$i].'\',\'imagem'.$i.'\',\'width='.$img_x.',height='.$img_y.',location=center,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no\')"/></a>';

?>

</li>

<?

echo $legendas[$id];

}

?>

</ul>

<?

$sql_3 = mysql_query("SELECT * FROM albums_photos where album = '$cod' ");

$total_registros = mysql_num_rows($sql_3);

$paginas = ceil($total_registros/$rpp);

$links = 1;

echo "<br />";

echo "<br />";

if ($pag > 1)

{

echo "<a href='?pagina=1'><< primeira p&aacute;gina </a>&nbsp;&nbsp;";

}

else

{

echo '<< primeira p&aacute;gina ';

}

if ($pag > 1)

{

$ant = $pag - 1;

echo '<a href="'.$PHP_SELF.'?pag='.$ant.'"><u>< anterior</u></a>';

}

else

{

echo '< anterior';

}

for($i = $pag; $i < $pag+4; $i++) {

if ($i <= $paginas){

if ($pag == ($i)) {

echo " [$i] ";

} else {

$i2 = $i;

echo " <a href=".$PHP_SELF."?pag=$i2 >$i</a> ";

}

}

}

if ($pag < $paginas)

{

$pro = $pag + 1;

echo ' <a href="'.$PHP_SELF.'?pag='.$pro.'"><u>pr&oacute;ximo ></u></a>';

}

else

{

echo ' pr&oacute;ximo >';

}

for($i = $pag+1; $i <= $pag+$links; $i++){

if($i>$paginas){

echo ' &uacute;ltima p&aacute;gina >>';

}else{

echo "&nbsp;&nbsp;<a href='?pag=".$paginas."'>&uacute;ltima p&aacute;gina >></a>&nbsp;&nbsp;";

}

}

echo'</div>';

?>

</p>

<p>&nbsp;</p>

</td>

</tr>

</table>

</body>

</html>

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
As fotos têm legenda e não estou conseguindo associar as legendas às fotos que o caminho vem do banco de dados e o loop vem da pasta onde estão os arquivos

tem o nome do arquivo dentro da tabela que tem a legenda ou em outra??

Link para o comentário
Compartilhar em outros sites

  • 0

Olá pessoal, sou eu novamente.

Consegui mostrar a legenda logo abaixo sua respectiva foto vinda do banco de dados. Fiz algumas pequenas alterações no codigo. Meu problema agora é somente conseguir fazer mostrar as fotos no estilo de uma galeria, tipo mostrando 5 fotos em uma linha depois mostrar as outras 5 na linha de deixo e assim sucessivamente. De jeito que está mostra 1 foto por linha por causa da quebra para a legenda ficar embaixo da foto. No mais está tudo funcionando 100%. Quem puder me ajudar agradeço muito. Segue o codigo ajustado :

<?

// Conexão com o banco de dados

header('Content-Type: text/html; charset=utf-8');

include "config.inc";

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>Untitled Document</title>

<style type="text/css">

body table tr td {

color: #006CB7;

font-family: Verdana, Geneva, sans-serif;

font-size: 12px;

text-align: center;

}

</style>

<link rel="stylesheet" href='css/hoverbox.css' type="text/css" media="screen, projection" />

<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />

<script src="js/prototype.js" type="text/javascript"></script>

<script src="js/scriptaculous.js?load=effects,builder" type="text/javascript"></script>

<script src="js/lightbox.js" type="text/javascript"></script>

</head>

<body>

<table width="775" border="0" align="center">

<tr>

<td align="center">

<br /><br />

<?

$galeria_album = "SELECT distinct a.titulo titulo, a.descricao descricao, a.local local, a.data data FROM albums a where a.id = 84 ORDER BY a.id DESC ";

$galeria_album = mysql_query($galeria_album) or die("Erro no SQL: ".mysql_error());

while($dados = mysql_fetch_array($galeria_album))

{

$id = $dados["id"];

$titulo = $dados["titulo"];

$descricao = $dados["descricao"];

$data = $dados["data"];

$data = substr($data, 8, 2) ."/". substr($data, 5, 2) ."/". substr($data, 0, 4);

$local = $dados["local"];

?>

<p>Evento <? echo $titulo; ?></p>

<p>Descri&ccedil;&atilde;o <? echo $descricao; ?></p>

<p>Local <? echo $local; ?></p>

<p>Data <? echo $data; ?></p>

<p></p>

<?

}

$pag=$_GET['pag'];

if(!$pag)

{

$pag=1;

}

$rpp=10; //Quantidade de imagens por página

$inicio=$pag * $rpp - $rpp;

$galeria_total = "SELECT count(*) qtd FROM albums_photos f where f.album = 84 LIMIT $inicio,$rpp ";

$galeria_total = mysql_query($galeria_total) or die("Erro no SQL: ".mysql_error());

$total_foto = mysql_num_rows($galeria_total);

while($dados_total = mysql_fetch_array($galeria_total))

{

$qtd = $dados_total["qtd"];

}

$galeria_fotos = "SELECT distinct f.album album, f.arquivo arquivo, f.legenda legenda FROM albums_photos f where f.album = 84 ORDER BY f.album DESC LIMIT $inicio,$rpp ";

$galeria_fotos = mysql_query($galeria_fotos) or die("Erro no SQL: ".mysql_error());

$total = mysql_num_rows($galeria_fotos);

while($dados_foto = mysql_fetch_array($galeria_fotos))

{

$arquivo = $dados_foto["arquivo"];

$legenda = $dados_foto["legenda"];

$nome_arquivo = substr($arquivo, 8);

$miniaturas = 'uploads/miniaturas/' . $nome_arquivo;

$ext = end(explode(".", $miniaturas)); // Pega a extensão do arquivo

$miniaturas = str_replace(".$ext", "_thumb.$ext", $miniaturas); // Substitui a extensão

$total = count($qtd);

$paginas = ceil ($total/$rpp); //arquivos por pagina 30/10=3

?>

<ul class="hoverbox">

<li>

<a href="<?= $arquivo; ?>" rel="lightbox[roadtrip]"><img src="<? echo $miniaturas;?>" alt="" /> <img src="<? echo $miniaturas;?>" class="preview" alt="" /></a>

</li>

<p><? echo $legenda; ?></p>

<?

}

?>

</ul>

<?

$sql_3 = mysql_query("SELECT * FROM albums_photos where album = 84");

$total_registros = mysql_num_rows($sql_3);

$paginas = ceil($total_registros/$rpp);

$links = 1;

echo "<br />";

echo "<br />";

if ($pag > 1)

{

echo "<a href='?pagina=1'><< primeira p&aacute;gina </a>&nbsp;&nbsp;";

}

else

{

echo '<< primeira p&aacute;gina ';

}

if ($pag > 1)

{

$ant = $pag - 1;

echo '<a href="'.$PHP_SELF.'?pag='.$ant.'"><u>< anterior</u></a>';

}

else

{

echo '< anterior';

}

for($i = $pag; $i < $pag+4; $i++) {

if ($i <= $paginas){

if ($pag == ($i)) {

echo " [$i] ";

} else {

$i2 = $i;

echo " <a href=".$PHP_SELF."?pag=$i2 >$i</a> ";

}

}

}

if ($pag < $paginas)

{

$pro = $pag + 1;

echo ' <a href="'.$PHP_SELF.'?pag='.$pro.'"><u>pr&oacute;ximo ></u></a>';

}

else

{

echo ' pr&oacute;ximo >';

}

for($i = $pag+1; $i <= $pag+$links; $i++){

if($i>$paginas){

echo ' &uacute;ltima p&aacute;gina >>';

}else{

echo "&nbsp;&nbsp;<a href='?pag=".$paginas."'>&uacute;ltima p&aacute;gina >></a>&nbsp;&nbsp;";

}

}

echo'</div>';

?>

</td>

</tr>

</table>

</body>

</html>

Atenciosamente,

Camila.

Link para o comentário
Compartilhar em outros sites

  • 0

da um select na tabela de fotos e bota um array o resultado

dps da um foreach ($array as $n => $foto)

você precisará ajustar o codigo da tabela dentro desse foreach...

se não conseguir, falai q eu mostro como que é

Link para o comentário
Compartilhar em outros sites

  • 0

Ola Blew, muito obrigada por responder. Eu consegui fazer tudo o que está tentando da maneira como está abaixo, mas tenho certeza de que o código precisa ser melhorado. Se tiver uma ideia de como poderia reescrever o codigo para ficar mais limpo e mais otimizado agradeço muito. Outra coisa é que o efeito lightbox não está funcionando no internet explorer, sabe como fazer para funcionar nele também ?? Testei nos mais usados e em todos está funcionando, somente no IE que não funciona.

Segue novo codigo abaixo para verificação :

<?

// Conexão com o banco de dados

header('Content-Type: text/html; charset=utf-8');

include "config.inc";

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>Untitled Document</title>

<style type="text/css">

body table tr td {

color: #006CB7;

font-family: Verdana, Geneva, sans-serif;

font-size: 12px;

text-align: center;

}

</style>

<link rel="stylesheet" href='css/hoverbox.css' type="text/css" media="screen, projection" />

<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />

<script src="js/prototype.js" type="text/javascript"></script>

<script src="js/scriptaculous.js?load=effects,builder" type="text/javascript"></script>

<script src="js/lightbox.js" type="text/javascript"></script>

</head>

<body>

<table width="775" border="0" align="center">

<tr>

<td width="775" height="119" bgcolor="#EFF2F1"><img src="../imagens/logo.PNG" width="169" height="79" /> Galeria de Fotos</td>

</tr>

<tr>

<td width="775" align="center">

<br /><br />

<?

$galeria_album = "SELECT distinct a.titulo titulo, a.descricao descricao, a.local local, a.data data FROM albums a where a.id = 84 ORDER BY a.id DESC ";

$galeria_album = mysql_query($galeria_album) or die("Erro no SQL: ".mysql_error());

while($dados = mysql_fetch_array($galeria_album))

{

$id = $dados["id"];

$titulo = $dados["titulo"];

$descricao = $dados["descricao"];

$data = $dados["data"];

$data = substr($data, 8, 2) ."/". substr($data, 5, 2) ."/". substr($data, 0, 4);

$local = $dados["local"];

?>

<p>Evento <? echo $titulo; ?></p>

<p>Descri&ccedil;&atilde;o <? echo $descricao; ?></p>

<p>Local <? echo $local; ?></p>

<p>Data <? echo $data; ?></p>

<p></p>

<?

}

?>

</td>

</tr>

</table>

<table>

<tr>

<?

$colunas = 5;

$i=1;

$pag=$_GET['pag'];

if(!$pag)

{

$pag=1;

}

$rpp=10; //Quantidade de imagens por página

$inicio=$pag * $rpp - $rpp;

$galeria_fotos = "SELECT distinct f.album album, f.arquivo arquivo, f.legenda legenda, count(*) qtd FROM albums_photos f where f.album = 84 group by f.arquivo, f.legenda ORDER BY f.album DESC LIMIT $inicio,$rpp ";

$galeria_fotos = mysql_query($galeria_fotos) or die("Erro no SQL: ".mysql_error());

$total = mysql_num_rows($galeria_fotos);

while($dados_foto = mysql_fetch_array($galeria_fotos))

{

$resto = $i%$colunas;

$arquivo = $dados_foto["arquivo"];

$legenda = $dados_foto["legenda"];

$nome_arquivo = substr($arquivo, 8);

$miniaturas = 'uploads/miniaturas/' . $nome_arquivo;

$ext = end(explode(".", $miniaturas)); // Pega a extensão do arquivo

$miniaturas = str_replace(".$ext", "_thumb.$ext", $miniaturas); // Substitui a extensão

$total = count($arquivos); //total de arquivos

$paginas = ceil ($total/$rpp); //arquivos por pagina 30/10=3

?>

<td width="775">

<ul class="hoverbox">

<li>

<a href="<?= $arquivo; ?>" rel="lightbox[roadtrip]"><img src="<? echo $miniaturas;?>" alt="" /> <img src="<? echo $miniaturas;?>" class="preview" alt="" /></a>

</li>

<p><? echo $legenda; ?></p>

</ul>

</td>

<?

if($resto == 0){

print "\n</tr>\n<tr>\n";

}

$i++;

}

if($resto != 0){ ?>

</tr>

<? } ?>

</table>

<table>

<tr>

<td width="775">

<?

$sql_3 = mysql_query("SELECT * FROM albums_photos where album = 84");

$total_registros = mysql_num_rows($sql_3);

$paginas = ceil($total_registros/$rpp);

$links = 1;

echo "<br />";

echo "<br />";

if ($pag > 1)

{

echo "<a href='?pagina=1'><< primeira p&aacute;gina </a>&nbsp;&nbsp;";

}

else

{

echo '<< primeira p&aacute;gina ';

}

if ($pag > 1)

{

$ant = $pag - 1;

echo '<a href="'.$PHP_SELF.'?pag='.$ant.'"><u>< anterior</u></a>';

}

else

{

echo '< anterior';

}

for($i = $pag; $i < $pag+4; $i++) {

if ($i <= $paginas){

if ($pag == ($i)) {

echo " [$i] ";

} else {

$i2 = $i;

echo " <a href=".$PHP_SELF."?pag=$i2 >$i</a> ";

}

}

}

if ($pag < $paginas)

{

$pro = $pag + 1;

echo ' <a href="'.$PHP_SELF.'?pag='.$pro.'"><u>pr&oacute;ximo ></u></a>';

}

else

{

echo ' pr&oacute;ximo >';

}

for($i = $pag+1; $i <= $pag+$links; $i++){

if($i>$paginas){

echo ' &uacute;ltima p&aacute;gina >>';

}else{

echo "&nbsp;&nbsp;<a href='?pag=".$paginas."'>&uacute;ltima p&aacute;gina >></a>&nbsp;&nbsp;";

}

}

echo'</div>';

?>

</p>

<p>&nbsp;</p>

</td>

</tr>

</table>

</body>

</html>

Desde já agradeço.

Att.

Camila.

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...