Jump to content
Fórum Script Brasil
  • 0

Preciso de ajuda


Camila Cristina

Question

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 to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...