01net    Web


Actuellement en ligne : 120 Utilisateurs dont 3 dans Programmation et développement >S'inscrire      >S'identifier      >Recherche      >Aide  
modéré par A.Ouloube, Beno@  
01net > Forum de 01net > Programmation et développement > PHP
> Créer un tirage au sort
Passionné(e) d'internet, de logiciels, de forums ? 01net recrute...
Auteur
Message
 
<     1       >
loucus
  
   
      ?   ^   @     Posté le 28/05/2007 14:26:20  
Voter pour ce message
Bonjour à tous,
j'aimerais savoir s'il est possible de créer un tirage au sort en php.
Je pense qu'il faut une bdd et un script qui permet de prendre un nom aléatoirement dans la bdd mais je ne vois pas comment le faire.

Merci d'avance pour votre aide.
Beno@
  
  :-)
      ?   @     Posté le 28/05/2007 14:50:06  
Voter pour ce message
oui, tu as une liste de noms dans la bdd, tu emt toutes les id en array, tu selectionne une ligne du tableau aléatoirement grace a mt_rand et ensuite tu selectionne la ligne mysql correspondant à l'id tirée
loucus
  
   
      ?   ^   @     Posté le 28/05/2007 14:53:31  
Voter pour ce message
merci mais c'est quoi un mt_rand ?
loucus
  
   
      ?   ^   @     Posté le 28/05/2007 16:07:44  
Voter pour ce message
j'ai vu ce que c'est mt_rand. mais je sais pas commen faire en sorte que lorque l'id s'affiche, il affiche les coordonnées correspondantes.
Beno@
  
  :-)
      ?   @     Posté le 28/05/2007 17:31:50  
Voter pour ce message
tu sais faire une requette mysql je présume?

alors dans ce cas tu fais une requette afin d'avoir toutes les id et tu les places dans un tableau:


array $id
{
1 => 1;
2 => 3;
3 => 4;
4 => 6;
5 => 7;
}


puis ensuite, tu compte retourne une ligne aléatoire de cet array:
$id_aleatoire=mt_rand (0, count ($id)-1);

et ensuite, tu fais une seconde requette mysql en selectionnant la bonne id qui est: $id[$id_aleatoire]

donc 'SELECT * FROM table WHERE id=\''.$id[$id_aleatoire].'\' ';

loucus
  
   
      ?   ^   @     Posté le 28/05/2007 20:12:40  
Voter pour ce message
Voici mon code ( je pense pas du tout que ce soit bon lol ) :
<?php

/* Démarre la session */
session_start();



mysql_connect(******', '********', '*******');
mysql_select_db('*******');
$select = "select * from tirage ";
$result = mysql_query($select);
if (!$result) {
die('Requête invalide : ' . mysql_error());
}
$data = mysql_fetch_array($result);
$id =$data['id'];


$alea = array ($id
{
1 => 1;
2 => 3;
3 => 4;
4 => 6;
5 => 7;
} )
$result3 = mysql_query($alea);

$id_aleatoire=mt_rand (0, count ($id)-1);

$select2 = "SELECT * FROM tirage WHERE id=\''.$id[$id_aleatoire].'\' ";
$result2 = mysql_query($select2);
?>
Beno@
  
  :-)
      ?   @     Posté le 28/05/2007 21:00:26  
Voter pour ce message
il faut tester :D
loucus
  
   
      ?   ^   @     Posté le 28/05/2007 21:05:07  
Voter pour ce message
lol ca marche pas :
Parse error: parse error, unexpected T_DOUBLE_ARROW in /homepages/18/d146939455/htdocs/loucus/alea.php on line 21
ornite
  
  :-)
      ?   @     Posté le 29/05/2007 09:27:27  
Voter pour ce message
Il manque une parenthése a cette ligne:

$alea = array ($id)

Mais bon, tu aurais peut etre pu la voir en regardant le code. :/
-->Message édité par ornite le 29/05/2007 09:27:47<--
-------
[:jandre:1]Il faut mieux en mettre plus que moins [:KiWin:1]
Beno@
  
  :-)
      ?   @     Posté le 29/05/2007 19:56:26  
Voter pour ce message
mais non, c'est quoi ce code? :S
loucus
  
   
      ?   ^   @     Posté le 29/05/2007 20:18:55  
Voter pour ce message
mais je fais comment ??! je comprend plus rien ?
masremi
  
   
      ?   @     Posté le 31/08/2007 18:19:28  
Voter pour ce message
J'étais confronté au meme problème et j'ai trouvé une solution toute bète :

$essai = mysql_query("SELECT * FROM tatable WHERE order by rand() limit 1 ");
mysql_close();
while ($data = mysql_fetch_array($essai))
{
$id = $data['id'];
echo $id;
}

Je pense que cela résoudra ton problème :hello:
<     1       >

01net > Forum de 01net > Programmation et développement > PHP
> Créer un tirage au sort

Aller à :

Page générée en : 0.587s - X2board 2.2

Nous contacter | Charte de confiance | Voir notice légale

Tous droits réservés © 1999 - 2008 Groupe Tests - 01net.


Sites du réseau 01net Network : 01net - 01men - Rmc.fr - Bfmtv.fr - Radiobfm.com - TousLesPodcasts - Micro Achat

Galaxie Deschamps
Didier Deschamps : tous ses amis, tous ses ennemis, ses réseaux, sa garde rapprochée.
Logiciel
OpenOffice 3.0 Bêta : les nouveautés de la suite bureautique à télécharger gratuitement