0

Como faço para o mostrar uma pesquisa randomica no banco (mysql), tipo: mostrar resultados um masculino, um feminino ?

criado por Jayson Melo em 17/09/2002 2:16pm
Nenhuma descrição foi enviada.

Lista de Respostas:

0
17/09/2002 5:54pm
(~21 anos atrás)
Mauro Luis Ribeiro respondeu:
Buenas!

Tche...explica melhor o que vc quer ..ou coloca o codigo para a gente verificar...

Valeu,

Gordo

0
17/09/2002 6:48pm
(~21 anos atrás)
Jayson Melo respondeu:
Simplificando é assim.....

Tenho o banco MySQL, com cadastros de pessoas. A pesquisa que eu quero não é aquela assim:

$sql = "select nome from cadastro where sexo = 'M' order by nome";

Quero uma pesquisa que não ordene e nem mostre na ordem que está no banco, e sim mostre aleatóriamente os dados do banco.

0
17/09/2002 9:59pm
(~21 anos atrás)
veja o uso da função RAND(), talvez seja isso que tu quer.

0
18/09/2002 6:36am
(~21 anos atrás)
$sql="select * from TABELA";
$total=mysql_num_rows(mysql_query($sql));
$cod=rand(0,$total-1);
$sql=$sql." where campo_cod='$cod'";
$registro=mysql_fetch_array(mysql_query($sql));
echo "Nome: $registro[nome]";

0
18/09/2002 8:52am
(~21 anos atrás)
Olá,


Cascudo o que você pretende fazer, já que não existe uma função ALTERNAR() no SQL.Eu faria da seguinte forma: gravar todos os registros do sexo masculino num array e do feminino em outro array. Em seguida usaria um loop "for" para exibir os registros na tela.
Mais ou menos assim (não testei o código):

<?
$homens = array();
$mulheres = array();
$con = mysql_connect(...bla);

$resp1 = mysql_query("SELECT nome FROM usuarios WHERE sexo='masculino'",$con);
while (list($nome) = mysql_fetch_array($resp1)) {
array_push($homens, $nome);
}

$resp2 = mysql_query("SELECT nome FROM usuarios WHERE sexo='feminino'",$con);
while (list($nome) = mysql_fetch_array($resp2)) {
array_push($mulheres, $nome);
}

if (count($homens)<count($mulheres)) {
$menorArray = count($homens);
} else {
$menorArray = count($mulheres);
}

// imprime um homem e uma mulher
for ($x=0; $x<$menorArray; $x++) {
echo $homens[$x] . "\n";
echo $mulheres[$x] . "\n";
}

// só imprimo nomes enquanto puder alternar, se tiver mais homens que mulheres, por exemplo, só imprimo homens até o mesmo número de mulheres.
?>


Atenciosamente,
Fábio Berbert de Paula
fabio@vivaolinux.com.br
www.vivaolinux.com.br

0
18/09/2002 10:21am
(~21 anos atrás)
Mauro Luis Ribeiro respondeu:
Buenas !

Tchê, ja tentou assim:

$sql = "select nome from cadastro where sexo='M' or sexo='F' ";

while ($row=mysql_fetch_array($sql)) {

print $row["nome"];

}

Valeu,

Gordo


0
18/09/2002 12:53pm
(~21 anos atrás)
Renata Albuquerque respondeu:
Faça apenas isso:

$sql = "SELECT * FROM tabela ORDER BY RAND()";

Pronto! O ORDER BY RAND() significa que ele listará randomicamente os dados do seu banco.

0
18/09/2002 3:03pm
(~21 anos atrás)
Olá,


Pessoal, pelo que entendi na pergunta dele é para mostrar um registro do sexo masculino e depois outro do feminino. As cláusulas OR e ORDER BY RAND() não funcionariam, visto que o OR vai selecionar todos os registros de qualquer um dos sexos ordenando os mesmos pelo critério de chegada ou outro qq e não por "um masc,um fem". O RAND() faria a mesma coisa, podendo pegar "um masc, um masc,um fem, um mas,um fem, um fem, ...". Por isso botei tudo em array e criando uma rotina própria de alternação.



Atenciosamente,
Fábio Berbert de Paula
fabio@vivoalinux.com.br

0
19/09/2002 6:10pm
(~21 anos atrás)
Mauro Luis Ribeiro respondeu:
Buenas!

Tche ta certo ...foi mal nao havia percebido...

Valeu,


Gordo

0
23/09/2002 12:05pm
(~21 anos atrás)
Neander Araújo respondeu:
Use o comando rand!

0
28/09/2002 2:44pm
(~21 anos atrás)
Von Baltus Nisthai respondeu:
<?
//CONECTA-SE COM O BANCO DE DADOS MYSQL
$con = mysql_connect("localhost","usuario","senha") or die("ERRO NA CONEXÃO");
$db = mysql_select_db("phpbrasil",$con) or die("ERRO NA SELEÇÃO DA BASE DE DADOS");

//MONTA O SELECT RANDÔMICO
$sql = mysql_query("SELECT * FROM cores ORDER BY RAND() LIMIT 2");

//EXIBINDO OS DADOS
while($array = mysql_fetch_array($sql)){
echo $array["ID"]." - ".$array["Feminino"]." - ".$array["Masculino"]. "<br>";
}
?>

0
29/09/2002 11:54am
(~21 anos atrás)
Ricardo Landim respondeu:
Um metodo simples de se fazer isso é jogar as variaveis em uma array organizada com masculino e feminino e depois com a função rand() sortear os valores representados por aqueles...

falows

0
20/01/2005 5:08pm
(~19 anos atrás)
André Rutz Porto respondeu:
cara o melhor caso ainda é utilizando o comando do mySQL ORDER BY RAND(), apesar de que do modo utilizando o array funciona, mas se você tem uma tabela com uns 100 itens. Se você tem uma table maior, ou pretende ter é melhor fazer duas querys no mysql utilizando o ORDER BY RAND() , uma selecionando o sexo masculino e o otro feminino. pois você tem que pensar que você irá criar um array com um monte de arrays, e tudo isso é memória do servidor e tempo de execução do script. Pensem no pobre do servidor as vezes :)

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)