Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Comando RAND repetindo resultados

19-07-2009 15:25

ola galera, tenho um script em PHP e ele tem seu banco de dados Mysql. eh o seguinte teno o array
$destaque = mysql_query("SELECT * FROM automoveis WHERE dest_inicial = 1 ORDER BY RAND() LIMIT 4");

ele randomiza o resultado ateh tudo bem. mas ele repete os resultados. e nao deveria. pq sao 4 resultados diferentes. e ele repetes alguns. gostaria que nao repetisse. alguem pode me da uma luz???? vlwww
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17737
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Comando RAND repetindo resultados

19-07-2009 15:52

Usa o select distinct com base no campo que não deve ser repetido.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Comando RAND repetindo resultados

19-07-2009 16:23

ficaria como?

$destaque = mysql_query("SELECT DISTINCT * FROM automoveis WHERE dest_inicial = 1 ORDER BY RAND() LIMIT 4");
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17737
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Comando RAND repetindo resultados

19-07-2009 16:29

O select distinct tem um problema de não retornar todos os campos, pontanto indico esse post

http://www.codigosnaweb.com/forum/DISTI ... _2152.html
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Comando RAND repetindo resultados

19-07-2009 16:38

:? hummmmm
dei uma olhada e nao me ajudou muito

$destaque = mysql_query("SELECT * FROM automoveis WHERE dest_inicial = 1 ORDER BY RAND() LIMIT 4");

vi o distinct e taul e o group concat() mas nao sei onde aplicar. :help
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17737
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Comando RAND repetindo resultados

19-07-2009 16:49

Você vai aplicar de acordo com seus campos

SELECT * FROM automoveis WHERE dest_inicial = 1 ORDER BY RAND() LIMIT 4

Se você tem: placa, carro, tipo, id

SELECT id, placa, carro, tipo, GROUP_CONCAT(DISTINCT id ORDER BY id) FROM suatabela GROUP BY id

Supondo que id seja o campo que se repete, e adicionando no final somente o: LIMIT 3
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Comando RAND repetindo resultados

19-07-2009 16:55

no meu caso ali eh só uma tabela. "automoveis" ai ficaria.

SELECT automoveis, GROUP_CONCAT(DISTINCT ORDER BY RAND() FROM automoveis GROUP BY id LIMIT 3


só nao entendi o limit 3 sendo que sao 4 vezes o resultado. vlwww
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17737
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Comando RAND repetindo resultados

19-07-2009 17:04

Pelo que entendi automoveis é a tabela e não as colunas dela, certo?

Na linha que passei você tem que selecionar todos os campos que vai usar na consulta, o LIMIT é para limitar o número de resultados mostrados em tanto.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Comando RAND repetindo resultados

19-07-2009 17:09

ixi. meio complicado. me ensinaram um metodo de fazer com uma semente. vc sabe como faz isso? ja fiz e deu certo mas nao lembro mais.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17737
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Comando RAND repetindo resultados

19-07-2009 17:22

Semente? Só se for em jardinagem :smile Em programação ainda não ví.

Em todo caso o script acima funciona, mas, se você não conhece a estutura da tabela fica complicado.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Comando RAND repetindo resultados

19-07-2009 17:44

jardinagem. kkkkkkkkkkkkkkkkkkkkkk

qual jeito ki funciona? esse?

SELECT automoveis, GROUP_CONCAT(DISTINCT ORDER BY RAND() FROM automoveis GROUP BY id LIMIT 3
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17737
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Comando RAND repetindo resultados

19-07-2009 18:30

Foi como eu disse, se você tem uma tabela "automoveis", ela deve ter as colunas. Ai você seleciona as colunas. Você tem que ter conhecimento básico sobre MySQL, um vídeo que pode ajudar é esse: http://www.codigosnaweb.com/forum/viewt ... =96&t=3283
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado