Como faço para o mostrar uma pesquisa randomica no banco (mysql), tipo: mostrar resultados um masculino, um feminino ?
Nenhuma descrição foi enviada.
comentários (0)
suspender
Lista de Respostas:
17/09/2002 5:54pm
(~22 anos atrás)
(~22 anos atrás)
Buenas!
Tche...explica melhor o que vc quer ..ou coloca o codigo para a gente verificar...
Valeu,
Gordo
Tche...explica melhor o que vc quer ..ou coloca o codigo para a gente verificar...
Valeu,
Gordo
17/09/2002 6:48pm
(~22 anos atrás)
(~22 anos atrás)
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.
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.
17/09/2002 9:59pm
(~22 anos atrás)
(~22 anos atrás)
veja o uso da função RAND(), talvez seja isso que tu quer.
18/09/2002 6:36am
(~22 anos atrás)
(~22 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]";
$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]";
18/09/2002 8:52am
(~22 anos atrás)
(~22 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
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
18/09/2002 10:21am
(~22 anos atrás)
(~22 anos atrás)
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
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
18/09/2002 12:53pm
(~22 anos atrás)
(~22 anos atrás)
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.
$sql = "SELECT * FROM tabela ORDER BY RAND()";
Pronto! O ORDER BY RAND() significa que ele listará randomicamente os dados do seu banco.
18/09/2002 3:03pm
(~22 anos atrás)
(~22 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
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
19/09/2002 6:10pm
(~22 anos atrás)
(~22 anos atrás)
Buenas!
Tche ta certo ...foi mal nao havia percebido...
Valeu,
Gordo
Tche ta certo ...foi mal nao havia percebido...
Valeu,
Gordo
28/09/2002 2:44pm
(~22 anos atrás)
(~22 anos atrás)
<?
//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>";
}
?>
//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>";
}
?>
29/09/2002 11:54am
(~22 anos atrás)
(~22 anos atrás)
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
falows
20/01/2005 5:08pm
(~20 anos atrás)
(~20 anos atrás)
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 :)