Ir para conteúdo

POWERED BY:

Arquivado

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

rafa-martin

[Resolvido] aparecer imagens aleatórias na página

Recommended Posts

pessoal tenho algumas imagens que estão vindo do banco.

 

eu queria saber como eu posso fazer com elas aparecem aleatóriamente, se refresh na página.

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exemplo simples:

 

<?php
// Cria um Array com as imagens
$imagens = array();
$imagens[] = 'imagem1.jpg';
$imagens[] = 'imagem2.jpg';
$imagens[] = 'imagem3.jpg';

$total = count($imagens); // Descobre o total de imagens definidas
$escolhida = rand(0, ($total - 1)); // Escolhe uma imagem aleatória

echo '<img src="'.$imagens[$escolhida].'" alt="imagem aleatória" />'; // Exibe a imagem
?>

Leia a documentação:

http://www.php.net/manual/pt_BR/function.count.php

http://www.php.net/manual/pt_BR/function.rand.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

então só que vai vir do banco inúmeras imagens.

 

então não dá pra definir no array um a um da forma que você fez.

 

como seria vindo as img's do banco?

Compartilhar este post


Link para o post
Compartilhar em outros sites

então fiz o seguinte:

 

$imagens = array();	




while ($row = mysql_fetch_assoc($re))
{

	$imagens[] = $caminho_foto; //variavel $caminho_foto é a imagem que vem do banco
	$total = count($imagens); // Descobre o total de imagens definidas
	$escolhida = rand(0, ($total - 1)); // Escolhe uma imagem aleatória			

   echo '<img src="'.$imagens[$escolhida].'" alt="imagem aleatória" />';

}

só que quando execute está aparecendo a a primeira imagem do banco e abaixo aparece a outra imagem. e quando eu atualizo a página a segunda imagem muda, como tem q ser. porém, a primeira fica lá estática. e aparece duas imagens pq tem dois registros no banco.

 

o que eu quero é saber coo tiro essa primeira imagem e deixo só a segunda imagem, mudando a imagem como está acontecendo, com a segunda imagem

 

como fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara você tem que tirar isso do loop:

 

$total = count($imagens); // Descobre o total de imagens definidas
	$escolhida = rand(0, ($total - 1)); // Escolhe uma imagem aleatória			

   echo '<img src="'.$imagens[$escolhida].'" alt="imagem aleatória" />';

 

No caso acredito que a solução seja essa:

 

while ($row = mysql_fetch_assoc($re))
{
	$imagens[] = $row['caminho_foto']; //variavel $caminho_foto é a imagem que vem do banco
}

$total = count($imagens); // Descobre o total de imagens definidas
$escolhida = rand(0, ($total - 1)); // Escolhe uma imagem aleatória			

echo '<img src="'.$imagens[$escolhida].'" alt="imagem aleatória" />';

So que fica muita gambiarra, seria mais interessante você alterar a query adiconando o "RAND()" como os amigos ali de cima falaro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça pelo array_rand, é muito bom, veja um exemplo:

 

<?php
$imagens = array();
$imagens[] = 'imagem1.jpg';
$imagens[] = 'imagem2.jpg';
$imagens[] = 'imagem3.jpg';

echo '<br>'.$imagens[array_rand($imagens)];
?>

Exibirá uma imagem por vez, para exibir varias tem que fazer um loop utilizando o count.

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui.

 

peguei um exemplo no forum. vejam o código completo

 

um arquivo com o script de atualização

 

<script>
setInterval("messages()", 10000);
function messages(){
var body = "";

		if (window.XMLHttpRequest) {
				xmlhttp = new XMLHttpRequest();
		} else if (window.ActiveXObject) {
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} else {
			alert("Seu navegador não suporta XMLHttpRequest.");
				return;
		}

	xmlhttp.open("POST", "banner_rand_1.php", true);
	xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
	xmlhttp.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
	xmlhttp.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
	xmlhttp.setRequestHeader("Pragma", "no-cache");

	xmlhttp.onreadystatechange = processReqChange;
	xmlhttp.send(null);

}

function processReqChange() {
	if (xmlhttp.readyState == 4) {
			if (xmlhttp.status == 200) {
				document.getElementById("texto").innerHTML = xmlhttp.responseText;
				document.getElementById("mensagem").value = document.getElementById("mensagem").value;
				} else {
					alert("Problemas ao carregar o arquivo.");
				}
	}
}
//-->
</script>

<div id="texto">
<?php include('banner_rand_1.php');?>
</div>

e um arquivo com os dados a serem atualizados

[code]
<?php
include "conexao.php";
/*
if(file_exists("init.php"))
{
   require "init.php";
}
else
{
   echo "Arquivo init.php não foi encontrado";
   exit;
}

if(!function_exists("Abre_Conexao"))
{
	echo "Erro o arquivo init.php foi alterado, não existe a função Abre_Conexao";
	exit;
}

Abre_Conexao();
*/


$re = mysql_query("select * from cid_banner order by nome_banner desc");
if(mysql_errno() != 0) {
if(!isset($erros)) {
	echo "Erro o arquivo init.php foi alterado, não existe $erros";
	exit;
}
echo $erros[mysql_errno()];
exit;
}

$imagens = array(); 

while ($row = mysql_fetch_assoc($re))
{
	$foto = $row["foto"];
	
	$caminho_foto = '../adm/' . $foto;

	$imagens[] = $caminho_foto; //variavel $caminho_foto é a imagem que vem do banco
}

$total = count($imagens); // Descobre o total de imagens definidas
$escolhida = rand(0, ($total - 1)); // Escolhe uma imagem aleatória			

echo '<img src="'.$imagens[$escolhida].'" alt="imagem aleatória" />';
?>

valeu pessoal.

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.