Traitement par paire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Traitement par paire

par DocType » 14 oct. 2006, 13:25

Simple !
Tu enregistre dans un tableau les variables à chaque boucle...et dès que tu insert tes données en bases par paire, tu formate le tableau (tu le vide).

par Florent » 13 oct. 2006, 18:57

Déjà grace à order by rand(), j'ai simplifié mon code.
merci déjà pour ça.

Le principe de faire des traitements dans la boucle une fois sur deux grace à %, ok j'en conviens.

Voici ce que je n'ai pas compris :

la boucle lit le premier enregistrement.
Pas de traitement puisqu'on attend l'autre.
la boucle lit le deuxième enregistrement.

Comment faire le traitement de ce dernier avec le premier qui n'est plus là ?
Il y a un truc que je ne saisis pas là :(

par DocType » 13 oct. 2006, 18:39

tu sélectionnes tes participants via un "ORDER BY rand()" en sql. Ensuite, tu boucle le résultat en "while(list() = mysql_fetch_array($resultat_requete)) ". Pour gérer deux par deux, simple. Tu définis avant ta boucle une variable à 0, et chaque passage dans la boucle tu incremente de 1. Tu teste ta variable dans la boucle avec modulo (%). Une fois sur deux, le modulo sera différent de 0. Reste plus qu'à faire le test grâce à cette variable, et à implémenter dans ce test les actions souhaitées ;)

Traitement par paire

par Florent » 13 oct. 2006, 18:25

Bonjour
Il me manque une petite astuce ou combine :)

Imaginons que je fasse un jeu ou j'ai 8 participants. Ils s'affrontent 2 par 2.
Toutes les valeurs sont enregistrées dans une table "tournoi".
id, nom, point et phase

Pour ne pas faire les affronts toujours dans le même ordre, je sors un nombre entier aléatoire compris entre 1 et 3.
ce qui me donne 3 requettes possible sur ma table :
order by id desc --- order by id asc ---- order by nom asc.

Je récupère les valeurs dans une table (suivant une de mes 3 possibilités)

Code : Tout sélectionner

$sql = "SELECT * FROM tournoi where phase = '$phase' order by id DESC"; $r2 = mysql_query($sql);
J'ai besoin de faire des traitements sur ces valeurs mais 2 par 2.
En fait la 1 avec la 2, la 3 avec la 4....

Où je bloque, c'est que je n'arrive pas à prendre grace à la boucle while les valeurs par 2.

je ne sais pas si je me suis bien expliqué, mais tout indice serait grandement apprécié.
Merci d'avance.