Ir para conteúdo

POWERED BY:

Arquivado

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

Gu3des

Consulta Randomica

Recommended Posts

Bom estou querendo fazer um site q exibe 4 anuncios de imoveis na index, randomicamente, e cada vez q você entra no site esses anuncios mudam.

 

Esse é meu código na pagina

 

randomica.php

 

PHP

[*]

[*]$sql_1 = mysql_query("SELECT * FROM tbl_anuncio ORDER BY RAND() LIMIT 1");

[*]

[*]while($array_1 = mysql_fetch_array($sql_1)){

[*]

[*] $anuncio_id_1 = $array_1["anuncio_id"]

[*] $anuncio_localizacao_1 = $array_1["anuncio_localizacao"]

[*] $anuncio_preco_1 = $array_1["anuncio_preco"];

[*] $foto_anuncio_1 = $array_1["foto_1"];

[*]

[*]}

[*]

 

Mas quando coloco para funcionar aparece um erro.

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/alphanet/public_html/randomico.php on line 8

 

Oq estah de errado com o meu código?

 

Desde já

Muito Obrigado

 

Rafael

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ops tinha escrito besteira.... agora que fui vê em que linha era o erro....Deve tah o nome do campo errado, tb to achando isso...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ou eh uma coluna da tabela que esta com nome errado... ou eh o nome da tabela....Posta ai... tipo olha se no banco esta escrito alguma coisa em maiusculo, ou o nome da tabela ou o nome de algum campo...Tipo eu fiz o teste aki com esse seu codigo e naum deu nenhum erro....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cade os campos foto_l e anuncio_id ???????Existem eles na sua tabela???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olhem ae como estaum os campos

 

anuncio_id

anuncio_operacao

anuncio_localizacao

anuncio_cidade

anuncio_cep

anuncio_endereco

anuncio_numero

anuncio_complemento

anuncio_titulo

anuncio_preco

anuncio_estuda_permuta

anuncio_tipo_casa

anuncio_dormitorios

anuncio_dormitorios_suites

anuncio_vagas_garagem

anuncio_numero_banheiros

anuncio_area_util

anuncio_nome_condominio

anuncio_valor_iptu

anuncio_zoneamento

anuncio_valor_condominio

anuncio_idade_imovel

anuncio_area_terreno

anuncio_metragem_frente

anuncio_caracteristicas

anuncio_instalacoes

anuncio_infraestrutura

anuncio_lazer

anuncio_informacoes_adicionais

anuncio_email_adicional

anuncio_telefone_adicional

anuncio_horario_contato

anuncio_login

anuncio_data

foto_1                 

foto_2                   

foto_3                 

foto_4                   

foto_5 

<{POST_SNAPBACK}>

<{POST_SNAPBACK}>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Corrigindo... que você postou quando eu tava lendo o outro post... Tem o campo anuncio_id????O nome da tabela esta escrito certo... tudo em minusculo mesmo????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá gu3d esse provavelmente seja pq a função rand() está retornando 0 pois olha o erro, ele prescis do numero minimo e máximo.

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/alphanet/public_html/randomico.php on line 8

 

A função rand -- Gera um número aleatório

 

Descrição

int rand ( [int min, int max] )

 

 

Se chamado sem os parâmetros opcionais min e max, rand() retornará um pseudo valor randômico entre 0 e RAND_MAX. Se você precisa de um número aleatório entre 5 e 15 (inclusive), por exemplo, utilize rand (5, 15).

 

aconselho você a fazer assim

 

PHP

[*]

[*]<?

[*]// Selecionando todos os dados da tabela 'banners'

[*]$q = "select * from tbl_anuncio ";

[*]$query = mysql_query($q) or die (mysql_error());

[*]

[*]// Ver quantos registros possui a tabela

[*]$total = mysql_num_rows($query);

[*]

[*]// Pegando um número aleatório entre 1 e $total;

[*]$numero = rand(1,$total);

[*]

[*]// Selecionando o registro $numero

[*]$q = "select * from tbl_anuncio order by ID ASC limit ".$numero.",1";

[*]$query = mysql_query($q);

[*]

[*]// Resultado da query em array

[*]$resultado = mysql_fetch_array($q);

[*]//apartir daki você já deve saber o resto da historia hehehe

[*]?>

[*]

 

Espero ter ajudado ... qualquer dúvida posta ai.

 

sem mais,

 

Castor Jr.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Castor Jr. o erro dele eu naum acho que seria isso....Pois copiei o codigo dele e colei aki numa página e soh mudei os nomes dos campo, testei e funcionou certinho aki....Tipo mandei escrer na tela os valores e saiu tudo certo aki... esse RAND() dele eh de comando SQL e naum do PHP, eu acho que deve ter uma diferença de funcionabilidade....Gu3des posta seu codigo inteiro ai....

Compartilhar este post


Link para o post
Compartilhar em outros sites

wolfphw eu não testei o script dele .... mas eu uso assim e funciona tb ... fica ai a sugestão para implementar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Castor tentei rodar seu código aqui, e ele acusa um erro da função Die do MySQL assim olha

 

No Database Selected

 

Acho estranho, não sei realmente oq tah acontecendo, será q o MySQL naum tah conseguindo conversar com o meu codigo?

 

Ou até mesmo meu servidor esteja com algum problema?

 

Vlw ae pela ajuda pessoal... me ajudem a desvendar esse misterio!

 

Rafael

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo no seu modo ele iria precisar fazer duas consultas pra funcionar...Uma soh pra pegar o ultimo registro... e dai ele roda ocodigo de randomização e faz a segunda consulta onde vai procurar o valor que foi gerado pelo codigo...Mas nesse modo pode dah um erro... tipo se ele escruir algum registro no meio e o codigo quando gera um numero acaba gerando esse que foi excluido... dai dah erro....Agora eu naum sei se o comando rand() dah pra mim colocar um monte de numeros e ele faz a randomização soh nos que foi mandado pra ele...Tipo rand(5,6,8,12,13,14,18,32,33,34,35,36,38,40)Tipo se ele randomiza apenas essse numeros que tem dentro do ()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gu3des devez você atribuir os valores nas variaveis, tenta imprimir eles na tela antes... soh pra vê se esta fazendo a consulta mesmo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas Gu3des no script que te passei não está selecionando base você prescisa adaptar ai para você .... manda o script completo para ajeitar ele.ta faltando o link da conexão com a base fera, tenta alterar essa linha.$query = mysql_query($q, coloca o link aki) or die (mysql_error());

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou colokar aki o codiço da pagina randomico.php, essa pagina vai para a index.php atraves de um include...

 

randomico.php

 

PHP

[*]<?

[*]include "config.php";

[*]

[*]// Primeiro anuncio destaque exibido

[*]

[*]$sql_1 = mysql_query("SELECT * FROM tbl_anuncio ORDER BY RAND() LIMIT 1");

[*]

[*]while($array_1 = mysql_fetch_array($sql_1)){

[*]

[*] $anuncio_id_1 = $array_1["anuncio_id"]

[*] $anuncio_localizacao_1 = $array_1["anuncio_localizacao"]

[*] $anuncio_preco_1 = $array_1["anuncio_preco"];

[*] $foto_anuncio_1 = $array_1["foto_1"];

[*]

[*]} 

[*]

[*]// Segundo anuncio destaque exibido

[*]

[*]$sql_2 = mysql_query("SELECT * FROM tbl_anuncio ORDER BY RAND() LIMIT 1");

[*]

[*]while($array_2 = mysql_fetch_array($sql_2)){ 

[*]

[*] $anuncio_id_2 = $array_2["anuncio_id"]

[*] $anuncio_localizacao_2 = $array_2["anuncio_localizacao"]

[*] $anuncio_preco_2 = $array_2["anuncio_preco"];

[*] $foto_anuncio_2 = $array_2["foto_1"];

[*]

[*]} 

[*]

[*]// Terceiro anuncio destaque exibido

[*]

[*]$sql_3 = mysql_query("SELECT * FROM tbl_anuncio ORDER BY RAND() LIMIT 1");

[*]

[*]while($array_3 = mysql_fetch_array($sql_3)){ 

[*] $anuncio_id_3 = $array_2["anuncio_id"]

[*] $anuncio_localizacao_3 = $array_2["anuncio_localizacao"]

[*] $anuncio_preco_3 = $array_2["anuncio_preco"];

[*] $foto_anuncio_3 = $array_2["foto_1"];

[*]

[*]}

[*]

[*]// Quarto anuncio destaque exibido

[*]

[*]$sql_4 = mysql_query("SELECT * FROM tbl_anuncio ORDER BY RAND() LIMIT 1");

[*]

[*]while($array_4 = mysql_fetch_array($sql_4)){ 

[*] $anuncio_id_4 = $array_2["anuncio_id"]

[*] $anuncio_localizacao_4 = $array_2["anuncio_localizacao"]

[*] $anuncio_preco_4 = $array_2["anuncio_preco"];

[*] $foto_anuncio_4 = $array_2["foto_1"];

[*]

[*]}

[*]

[*]?>

 

É assim... onde a pagina config.php as informações de conexão com o banco de dados, e a senha do DB...

Olhem ae

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.