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

Sistema de Slide simples - Erro de array


Ednelson Amaral Guinho

Pergunta

Fala família SB bla?, estou com uma dúvida no código abaixo, estou tentando adaptar uma legenda por foto, acredito ter começado certo, porém está aparecendo Array ao invés da legenda. Como posso fazer isso? desde já, agradeço a todos que puderem ajudar aí...

Foto.php

<?php

/*

$host = "localhost";

$login = "";

$senha = "";

$banco = "";

Se preferir desabilite a include abaixo e configure as variáveis acima!

*/

include "configura.php";

$tabela = "foto";//Tabela do Banco $banco

$connect = mysql_connect("$host", "$login", "$senha") or die("Erro na Conexão");//Conexão com o Mysql

mysql_select_db("$banco");//Seleção do Banco de Dados

$sql = "SELECT foto, legenda FROM $tabela"; //Aqui pegamos somente a campo foto da tabela

$exec = mysql_query($sql);//Executa a função acima

$total = mysql_num_rows($exec);//Verifica quantas linhas de foto existe

if($total < 1){ echo "Nenhuma foto encontrada"; } else {//Caso não exista foto cadastrada exibe a mensagem

while($dados = mysql_fetch_array($exec)){//Caso exista foto no banco executa esta linha

$foto[] = $dados['foto'];//Deixamos $foto[] para fazer o loop de várias imagens abaixo!

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

}}

$dado2 = mysql_fetch_array(mysql_query("SELECT foto, legenda FROM $tabela ORDER by id ASC LIMIT 1"));

$foto2 = $dado2['foto'];

echo "$total fotos";//Aqui vai dizer quantas fotos tem cadastrada no banco

?>

<html>

<head>

<title>Slide de Fotos - Xocotrop</title>

<script type="text/javascript" src="js/jquery-1.3.1.min.js"></script>

<script TIPE="JavaScript" TYPE="text/javascript">

<!--

rotator=true; // Inicializando o roteador

n=0; // Inicializando a primeira imagem

//Aqui pegamos as linhas do banco de dados!

theImages="<?

for($i = 0; $i <= $total-1; $i++){//Se for 0, vai ler até menor ou igual a 10 e imprimir os valores!

if($i == $total-1) {

$fim = "";

} else {

$fim = "|";

}

echo "$foto[$i]$fim";

}//Caso você queira um valor maior que 10 troque ou substitua pela variável $total

?>".split("|");//Aqui é quebrada uma imagem entre a outra!

allImages=theImages.length;

// Criando os objetos das imagens => preload

imgObjects=new Array();

for (i in theImages){

imgObjects=new Image();

imgObjects.src=theImages;

}

/* --------------------------------------------------------------------

* function autoplay()

* Troque as imagens automaticamente com o play

* Options:

* Execute - pode ser 1 ou 0, 1 começa a jogar, 0 finaliza a função

* srcimage - define a imagem que será substituída

* direction - 1 próxima -1 anterior

* speed - velocidade em milisegundos

* requer a função function rotate()

* --------------------------------------------------------------------*/

function autoplay(run,srcimage,direction,speed){

// deleta configuração antiga

clearInterval(rotator)

if (run != 0){rotator=setInterval("rotate('"+srcimage+"',"+direction+")",speed)}

else{clearInterval(rotator)}

}

/* ------------------------------------------------------------ --------------------

* function rotate()

* Permite a mudar a imagem de fonte para o próximo ou último na lista.

* Opções:

* Srcimage - define a imagem que será substituído pelos outros

* Direcção - 1 em frente -1 para trás

* ------------------------------------------------- */

function rotate(srcimage,direction){

n=n+direction;

if (n==allImages) n=0;

if (n==-1) n=allImages-1;

document.images[srcimage].src=imgObjects[n].src;

}

//-->

</SCRIPT>

</head>

<body>

<table border="0">

<tr>

<td height="35" colspan="3" align="center"><img src="<? echo "$foto2"; ?>" name="myImage" alt="" border="0"></td>

</tr>

<tr>

<td colspan="3" align="center"><? echo "$legenda";?></td>

</tr>

<tr>

<td width="41" height="73"><a href="java script:rotate('myImage',-1)">Voltar</a>&nbsp;</td>

<td width="30">&nbsp;</td>

<td width="50"><a href="java script:rotate('myImage',1)">Pr&oacute;xima</a></td>

</tr>

</table>

<p><a href="java script:autoplay(1,'myImage',-1,2000)">Play Verso </a>&nbsp;Rodar automaticamente ao contr&aacute;rio</p>

<p><a href="java script:autoplay(0)">stop</a>&nbsp;Parar<br>

<br>

<a href="java script:autoplay(1,'myImage',1,1000)">Play</a>&nbsp;Rodar Automaticamente</p>

<p><a href="java script:autoplay(0)">stop</a>Parar </p>

</body>

</html>

:blink:

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

olha

realmente está errado veja só...

$legenda[] = $dados['legenda'];
$dados é uma array que vem o resultado da query mySQL que você fez... $legenda nada mais você armazena pra cada linha de "$dados" o seu valor... como você passa [] sempre adiciona no final então, isso resume-se que a variável $legenda é uma array sendo assim...
<td colspan="3" align="center"><? echo "$legenda";?></td>
realmente vai dizer "Array()" sendo assim troque essa parte
$dado2 = mysql_fetch_array(mysql_query("SELECT foto, legenda FROM $tabela ORDER by id ASC LIMIT 1")); 
$foto2 = $dado2['foto'];
echo "$total fotos";//Aqui vai dizer quantas fotos tem cadastrada no banco
por
$dado2 = mysql_fetch_array(mysql_query("SELECT foto, legenda FROM $tabela ORDER by id ASC LIMIT 1")); 
$foto2 = $dado2['foto'];
$legenda2 = $dado2['legenda'];
echo "$total fotos";//Aqui vai dizer quantas fotos tem cadastrada no banco
e então lá embaixo onde está
<td colspan="3" align="center"><? echo "$legenda";?></td>
troque por
<td colspan="3" align="center"><? echo "$legenda2";?></td>

resolveria... mas acho que seu código ta meio bagunçado daria pra otimizar...

abrs

Editado por Churc
Link para o comentário
Compartilhar em outros sites

  • 0
olha

realmente está errado veja só...

$legenda[] = $dados['legenda'];
$dados é uma array que vem o resultado da query mySQL que você fez... $legenda nada mais você armazena pra cada linha de "$dados" o seu valor... como você passa [] sempre adiciona no final então, isso resume-se que a variável $legenda é uma array sendo assim...
<td colspan="3" align="center"><? echo "$legenda";?></td>
realmente vai dizer "Array()" sendo assim troque essa parte
$dado2 = mysql_fetch_array(mysql_query("SELECT foto, legenda FROM $tabela ORDER by id ASC LIMIT 1")); 
$foto2 = $dado2['foto'];
echo "$total fotos";//Aqui vai dizer quantas fotos tem cadastrada no banco
por
$dado2 = mysql_fetch_array(mysql_query("SELECT foto, legenda FROM $tabela ORDER by id ASC LIMIT 1")); 
$foto2 = $dado2['foto'];
$legenda2 = $dado2['legenda'];
echo "$total fotos";//Aqui vai dizer quantas fotos tem cadastrada no banco
e então lá embaixo onde está
<td colspan="3" align="center"><? echo "$legenda";?></td>
troque por
<td colspan="3" align="center"><? echo "$legenda2";?></td>

resolveria... mas acho que seu código ta meio bagunçado daria pra otimizar...

abrs

Cara, desde já, agradeço de verdade, logo que possível vou fazer esse teste, pois meus dias estão corridos no trabalho mais olha, valeu mesmo pela força.... abração fica com Deus e ótima semana...

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo, achei excelente o seu trabalho. Contudo, não tem como fazer funcionar a legenda.

Fica em todas as fotos a legenda da primeira. Nos meus pequenos conhecimentos, desculpe a pretensão,

não está faltando uma function rotate() para a legenda ?. Ela, quem sabe, incorporada ao

rotate da imagem, para correrem paralelamente ?

Editado por Raul Blos
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,2k
    • Posts
      652k
×
×
  • Criar Novo...