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

Randomizar Resultados


gabi_poa

Pergunta

Oi, isso foi o que eu fiz de manhã:

tenho um campo text num form que chama name="texto", e cujo value vai para dentro de uma tabela "insere", com campo "valor". Depois eu mostro o resultado numa tabela (todos anteriores mais o atual). Não vou colocar as tabelas nemo código html para facilitar a leitura de vocês:

while ($linha = mysql_fetch_row($resultado)) {

$numero = $linha['id']; //NUMERO contém o valor de LINHA?

array_push($ids, $numero); //insere NUMERO no array IDS?

printf("$linha[0]"); //mostra sempre linha[0]??

//me digam, por favor, como esse loop acontece, tipo, cadê o incremento???

}

Agora, eu quero sortear um desses valores (do campo "valor"). Na real a intenção é aprender a trabalhar com arrays e randomizar no php, lá vai:

$id = array_rand($ids,1); // Sorteia 1 id?

$busca = mysql_query("SELECT * FROM insere WHERE id='$id'");

printf("$busca[0]");

mysql_close($conexao);

É claro que não funciona........POR QUÊ????

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Não vou colocar as tabelas nemo código html para facilitar a leitura de vocês:

O Error agradece... happy.gif

Só faltou colocar o código dentro de

ou de [code ] pra ficar perfeito... biggrin.gif

while ($linha = mysql_fetch_row($resultado)) {

Realmente não tem incremento aí...

Funciona da seguinte forma: toda fez que você executa um mysql_fetch_row() ele pega os valores daquela linha e move o ponteiro pra a próxima linha; isso dentro dos resultados que foram retornados da pesquisa.

Então, enquanto houverem linhas (essa é a parte do while... enquanto aquela variável puder receber o valor de uma linha do banco de dados) ele vai passando os valores pra dentro de $linha, ou seja, a cada loop, a array $linha vai receber os valores correspondentes àquela linha até que não hajam mais linhas para serem passadas para ela...

$numero = $linha['id]; //NUMERO contém o valor de LINHA?

Aqui, deve existir um campo na tabela que se chama "id", ele está pegando o valor desse campo e passando pra variável $numero... essa parte do código não faz nada de mais; poderia ser dispensada com devidos ajustes...

Isso não deve estar funcionando porque o mysql_fetch_row() não passa o nome dos campos para a array, ele usa índices normais. O primeiro campo da tabela seria $linha[0], o segundo, $linha[1], o terceiro, $linha[2] e assim por diante...

Pra puxar os campos com os seus respectivos nomes, use mysql_fetch_array() ou mysql_fetch_assoc()... cool.gif

array_push($ids, $numero); //insere NUMERO no array IDS?

É isso mesmo que ela faz, pega esse número, que é o valor do campo "id", e põe como um novo elemento da array $ids... Note que, para usar a função array_push() você já deve ter setado essa array antes... a array já tem que existir; o comando não pode ser usado para criar uma nova array...

  printf("$linha[0]"); //mostra sempre linha[0]??

Vai imprimir o valor do primeiro campo da tabela... dessa forma está certa, sem o "id" como índice...

//me digam, por favor, como esse loop acontece, tipo, cadê o incremento???

}

$id = array_rand($ids,1); // Sorteia 1 id?

Isso mesmo... e passa o valor pra dentro da variável $id...

$busca = mysql_query("SELECT * FROM insere WHERE id='$id'");

  printf("$busca[0]");

mysql_close($conexao);

Alguma dúvida? cool.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, parece que eu tava viajando. Esse script não é meu, e achei que id fosse o jeito de pegar/chamar o ID de cada valor do campo no mysql. Por que eu acho que id é um número, e que deve ser indexado a partir do zero, aí era so eu sortear um número e colocar no id, por isso

$busca = "SELECT valor FROM insere WHERE id='id'";

Eu achei que ia selecionar o conteúdo do campo valor, cujo id fosse id (o randomizado).

Link para o comentário
Compartilhar em outros sites

  • 0
Cara, parece que eu tava viajando. Esse script não é meu, e achei que id fosse o jeito de pegar/chamar o ID de cada valor do campo no mysql. Por que eu acho que id é um número, e que deve ser indexado a partir do zero, aí era so eu sortear um número e colocar no id, por isso

$busca = "SELECT valor FROM insere WHERE id='id'";

Eu achei que ia selecionar o conteúdo do campo valor, cujo id fosse id (o randomizado).

É isso mesmo que ele faz, ou tenta fazer... rolleyes.gif

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,3k
    • Posts
      652,2k
×
×
  • Criar Novo...