Jump to content


Photo

Mostrar Resultados Diferentes


  • Faça o login para participar
6 replies to this topic

#1 aaa

aaa

    Turista

  • Usuários
  • 31 posts
  • Sexo:Não informado

Posted 01/10/2008, 21:38

Olá :)
Ainda estou na construção do meu tão famoso jogo :P, e preciso de uma ajudinha....

Olhe só a query do código:

$query = "select `id`, `username`, `hp`, `maxhp`, `level` from `players` where `id`!= ? and ";
$query .= ($_GET['username'] != "")?"`username` LIKE ? and ":"";
$query .= ($_GET['fromlevel'] != "")?"`level` >= ? and ":"";
$query .= ($_GET['tolevel'] != "")?"`level` <= ? and ":"";
$query .= ($_GET['alive'] == "1")?"`hp` > 0 ":"`hp` = 0 ";
$query .= "limit 20";

Isto faz parte da busca de jogadores para assasinar... o problema é que, se eu procurar jogadores do nivel 20, 21, 22.... vai sempre aparecer os mesmos resultados, na mesma ordem, e sempre os primeiros usuários morrem.

Tem como fazer a query tipo, mostrar sempre uma ordem diferente?

#2 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 01/10/2008, 21:57

Você quer fazer uma busca com resultados aleatórios?

Isso que deu pra entender... '-'

Edição feita por: lwirkk, 01/10/2008, 21:57.

Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#3 aaa

aaa

    Turista

  • Usuários
  • 31 posts
  • Sexo:Não informado

Posted 02/10/2008, 13:06

sim, tipo, se eu procurar por usuarios de nivel 10 neste código sempre vai mostrar 20 resultados, e é sempre os mesmos....

Fulano1
Fulano2
Fulano3
Fulano4...até o fulano 20
^Todos com o nivel 10 é claro^


Mas são mais de 20 usuários com o nivel 10, mas o Fulano 21, Fulano 22 nunca aparecem...

Espero q tenha entendido

#4 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 02/10/2008, 20:48

Essa sua query postada acima que faz isso?

Se for, com base nela poderia ser assim:
$query = "select `id`, `username`, `hp`, `maxhp`, `level` RAND() from `players` where `id`!= ? and ";
$query .= ($_GET['username'] != "")?"`username` LIKE ? and ":"";
$query .= ($_GET['fromlevel'] != "")?"`level` >= ? and ":"";
$query .= ($_GET['tolevel'] != "")?"`level` <= ? and ":"";
$query .= ($_GET['alive'] == "1")?"`hp` > 0 ":"`hp` = 0 ";
$query .= "limit 20";

Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#5 aaa

aaa

    Turista

  • Usuários
  • 31 posts
  • Sexo:Não informado

Posted 02/10/2008, 20:55

Essa sua query postada acima que faz isso?

Se for, com base nela poderia ser assim:

$query = "select `id`, `username`, `hp`, `maxhp`, `level` RAND() from `players` where `id`!= ? and ";
$query .= ($_GET['username'] != "")?"`username` LIKE ? and ":"";
$query .= ($_GET['fromlevel'] != "")?"`level` >= ? and ":"";
$query .= ($_GET['tolevel'] != "")?"`level` <= ? and ":"";
$query .= ($_GET['alive'] == "1")?"`hp` > 0 ":"`hp` = 0 ";
$query .= "limit 20";


Não funcionou.... tem certeza que este RAND() vai ai mesmo no meio da query?

Fatal error: Call to a member function recordcount() on a non-object in /home/a5787961/public_html/battle.php on line 414


Linha 414:

if ($query->recordcount() > 0) //Check if any players were found



#6 CMAC

CMAC

    Normal

  • Usuários
  • 93 posts
  • Sexo:Masculino

Posted 03/10/2008, 04:22

Tenta assim:

$query = "SELECT id, username, hp, maxhp, level FROM players WHERE 'id' != ? AND ";
$query .= ($_GET['username'] != "") ? "'username' LIKE ? AND " : "";
$query .= ($_GET['fromlevel'] != "") ? "'level' >= ? AND " : "";
$query .= ($_GET['tolevel'] != "") ? "'level' <= ? AND " : "";
$query .= ($_GET['alive'] == "1") ? "'hp' > 0 " : "'hp' = 0 ";
$query .= "ORDER BY RAND() LIMIT 20";

Não testei pois estou no trabalho...
Diz se funcionou depois.

#7 aaa

aaa

    Turista

  • Usuários
  • 31 posts
  • Sexo:Não informado

Posted 03/10/2008, 15:09

funcionou certinho CMAC! te amo :)




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq