Ir para conteúdo
  • Cadastre-se
Entre para seguir isso  
HangLooseE

(Resolvido) Script Sorteio L2 ;

Posts recomendados

Opa , galera sou iniciante em php , entao , peguei 1 script de sorteio da net , mais ele so sorteava os nomes que estavao em uma linha , estou tentando fazer ele chamar a coluna "char_name" da tabela e listar para mim os sorteados ;

 

o script ficou assim

 

 

 

<?
include "conexao.php";
?>

<? 
// Matriz com todos os participantes
$participantes = mysql_query ("SELECT char_name FROM characters ORDER BY char_name");
while($linha = mysql_fetch_array($participantes)){

}

// Definindo o número de participantes
$numParticipantes = "4";

// Informações adicionais
$chances = round((1 / $numParticipantes) * 100);
echo "- Temos no total <b>".$numParticipantes."</b> participantes; <br />";
echo "- Cada participante teve <b>".$chances."%</b> de chance de ganhar; <br /><br />";

// Sorteando

# Primeiro ganhador
$sorteado[1] = $participantes[rand(0,$numParticipantes - 1)];

# Segundo ganhador
for ($i = 1; $i < 2; $i++) {
$sorteado[2] = $participantes[rand(0,$numParticipantes - 1)];
// Caso o ganhador já tenha saido, sorteia novamente.
if ($sorteado[2] == $sorteado[1]) {
	--$i;
}
}

# Terceiro ganhador
for ($i = 1; $i < 2; $i++) {
$sorteado[3] = $participantes[rand(0,$numParticipantes - 1)];
// Caso o ganhador já tenha saido, sorteia novamente.
if ($sorteado[3] == $sorteado[1] || $sorteado[3] == $sorteado[2]) {
	--$i;
}
}

// Exibindo ganhadores
echo "<b>Ganhadores:</b> <br />";
echo "<b>1°</b> - " . $sorteado[1] . "<br />";
echo "<b>2°</b> - " . $sorteado[2] . "<br />";
echo "<b>3°</b> - " . $sorteado[3] . "<br />";

?>

 

 

mais quando tento efetuar o sorteio me retorna o seguinte erro

 

- Temos no total 4 participantes;

- Cada participante teve 25% de chance de ganhar;

 

 

Fatal error: Maximum execution time of 30 seconds exceeded in C:\AppServ\www\a\sorteio.php on line 26

 

vou postar a linha 25 até a 32 :

 

# Segundo ganhador
for ($i = 1; $i < 2; $i++) {
$sorteado[2] = $participantes[rand(0,$numParticipantes - 1)];
// Caso o ganhador já tenha saido, sorteia novamente.
if ($sorteado[2] == $sorteado[1]) {
	--$i;
}
}

;

 

Help me '-'

Editado por HangLooseE

Compartilhar este post


Link para o post
Compartilhar em outros sites

Precisando de Dedicado ou VPS?

Conheça a L2JCenter

Pelo que entendi do seu script é que ta, querendo fazer um sorteio de chars aleatorio correto? no caso o char téria que se cadastrar no sorteio ou não?

 

Caso ta ai, e vc quiser puxar 3 char aleatoriamente é simples, só fazer assim:

 

<?php

$participantes = mysql_query ("SELECT char_name FROM characters ORDER BY RAND() LIMIT 3");

$sorteado = mysql_featch_array($participantes);

 

// Exibindo ganhadores

echo "<b>Ganhadores:</b> <br />";

echo "<b>1°</b> - " . $sorteado[0] . "<br />";

echo "<b>2°</b> - " . $sorteado[1] . "<br />";

echo "<b>3°</b> - " . $sorteado[2] . "<br />";

?>

 

RAND() LIMIT 3 - Aqui é onde acontece a magica, ele randomiza a busca, o LIMIT 3 ali, é o número de resultados que vai ter, no caso, 1, 2 e 3 lugar.

Isso ai, busca 3 chars aleatorios da database, se vc quiser colocar onde o char se cadastra, é só criar uma tabela sorteio e guarda o nome do char lá, ai vc busca somente lá, tipo os chars que tão participando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funcionou e nao funcionou UHDAUSHD '

 

Tipo funcionou ele sorteio mais ele so estava sorteando 1 por vez , ai eu modifiquei 1 pouco o Codigo , e ele ficou assim :

 

 

 

<?
include "conexao.php";
$participantes = mysql_query ("SELECT char_name FROM characters ORDER BY RAND() LIMIT 3");
$sorteadoname = mysql_fetch_array($participantes);
$sorteadoname2 = mysql_fetch_array($participantes);
$sorteadoname3 = mysql_fetch_array($participantes);

$participantesid = mysql_query ("SELECT charId FROM characters ORDER BY RAND() LIMIT 3");
$sorteadoid = mysql_fetch_array($participantesid);
$sorteadoid2 = mysql_fetch_array($participantesid);
$sorteadoid3 = mysql_fetch_array($participantesid);

// Definindo o número de participantes
$numParticipantes = "4";

// Informações adicionais
$chances = round((1 / $numParticipantes) * 100);
echo "- Temos no total <b>".$numParticipantes."</b> participantes; <br />";
echo "- Cada participante teve <b>".$chances."%</b> de chance de ganhar; <br /><br />";

// Exibindo ganhadores

echo "<b>Ganhadores:</b> <br />";
echo "<b>Personagem</b> : " . $sorteadoname[0] . " <b> ID  </b> : " . $sorteadoid[0] . "<br />";
echo "<b>Personagem</b> : " . $sorteadoname2[0] . " <b> ID  </b> : " . $sorteadoid2[0] . "<br />";
echo "<b>Personagem</b> : " . $sorteadoname3[0] . " <b> ID  </b> : " . $sorteadoid3[0] . "<br />";
?>

 

 

e agora eu estou tentando fazer 1 form.php , pra eu apertar no botao e ai ele chamar o sorteio .php

Editado por HangLooseE

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade eu que dei um vacilo, o correto é assim:

 

 

<?php

$participantes = mysql_query ("SELECT char_name FROM characters ORDER BY RAND() LIMIT 3");

$sorteado = mysql_featch_array($participantes);

 

// Exibindo ganhadores

echo "<b>Ganhadores:</b> <br />";

echo "<b>1°</b> - " . $sorteado['char_name'][0] . "<br />";

echo "<b>2°</b> - " . $sorteado['char_name'][1] . "<br />";

echo "<b>3°</b> - " . $sorteado['char_name'][2] . "<br />";

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por fim consegui terminar meu scriptzin xD

 

ele ficou assim por final , bem basicao :

 

sorteio.php

 

<?
include "conexao.php";
include "css.php";
$participantesid = mysql_query ("SELECT charId FROM characters ORDER BY RAND() LIMIT 3");
$sorteadoid = mysql_fetch_array($participantesid);

$participantes = mysql_query ("SELECT char_name FROM characters ORDER BY RAND() LIMIT 3");
$sorteadoname = mysql_fetch_array($participantes);

$add = mysql_query("INSERT INTO ganhadores (sorteadoid, sorteadoname) VALUES ('$sorteadoid[0]','$sorteadoname[0]')");

?>
<?
// Definindo o número de participantes
$numParticipantes = "4";

// Informações adicionais
$chances = round((1 / $numParticipantes) * 100);
echo "- Temos no total <b>".$numParticipantes."</b> participantes; <br />";
echo "- Cada participante teve <b>".$chances."%</b> de chance de ganhar; <br /><br />";

// Exibindo ganhadores

echo "<b>Ganhador:</b> <br />";
echo "<b>Personagem</b> : " . $sorteadoname[0] . " <b> ID  </b> : " . $sorteadoid[0] . "<br />";
echo "Inserido Também no banco de dados dos Ganhadores !";
?>

<form name="form1" method="post" action="form.php">
 <div id="jack2"> <input type="submit" name="Submit" id="button" value="Voltar" /> 
</div>
</form>

 

 

Muito Obrigado , Weuller Krysthian por ter tido paciencia comigo =D

Editado por HangLooseE

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  

  • Mudanças no Login

    Preste atenção às mudanças no método de login.

    Com a migração para nomes de usuário IPB4 não existe mais.

    Você deve usar seu nome de exibição ou email em vez de nome de usuário.




     



  • Quem Está Navegando

    Nenhum usuário registrado visualizando esta página.

  • Posts

×