sujet délicat: auto incrément

Répondre
Bzh
le 01/08/2007 à 12:32
Bzh
Et si l'exemple avec le z-index est nikel !

Ce que je voulais dire par là, et ce que vous n'avez pas compris, c'est que pour classer des valeurs, elles n'ont pas besoin de ce suivre !!!!

Si ton élève sur la table 24 part, forcément celui de la 25 prends sa place !

Car c'est celui qui vient JUSTE après ! Comme pour le Z-INDEX !

Les valeurs n'ont pas besoin de ce suivre.

exemple :

3, 4 , 9 , 10

si 9 part et que 12 arrive comme dans ton exemple avec les élèves, on aura:

3 , 4 , 10 , 12

Exactement ce que tu souhaite !

En faisant un simple "ORDER BY id " suffit !!!
Lefounard
le 01/08/2007 à 13:08
Lefounard
J'espere que ce sujet ne fera pas couler de sang mais juste de l'encre ! lol
I am singing in the rain , I am happy again !!
Necnom
le 01/08/2007 à 17:02
Necnom
Zebden : Oui, je vais brûler des voitures si je n e passe pas 1224 !
Si non, je ne vais jamais arriver premier, si quelqu'un part !!! Et si je n'avance pas, je vais brûler des immeubles.
Necnom :)
zebden
le 01/08/2007 à 17:47
zebden
Bon bah pour éviter que tu me brûles tout, reprend la solution de LA_GLOBULE lors de la suppression pour repositionner tout le monde à partir de la position supprimée.

mais bon je vois toujours pas la nécessité de ceci mais chacun est libre comme on dit ^^
zebdinou pour les intimes / Blog : http://www.zebden.fr
Bzh
le 01/08/2007 à 20:34
Bzh
Aaaaaaaaaaaaah !

J' ai compris... Si, si...

Enfet, dans ce cas, il faut que tu utilises LIMIT

SELECT id FROM eleves WHERE ta_clause=valeur ORDER BY id LIMIT 1,24

En voila, tu auras TOUJOURS le 24ème...

Elle est pas belle la vie ?
Necnom
le 02/08/2007 à 17:31
Necnom
Mais qu'est ce que tu racontes ?? smiley

ha je vois ce que tu veux dire...

Non ce n'est pas ça.
Dans ton cas, tout s'arrête à 24 et si un nouvel élève arrive, il ne sera pas compté.
---
Mais je comprends bien ton idée Bzh.
Pourquoi ne pas juste faire un
SELECT id FROM eleves ORDER BY id

et rajouter une variable qui s'incrémente pour chaque élève, comme ça j'aurai les positions de 1 jusqu'à 24 ( si le dernier est 24 ème ).

------

Oui , mais non .
Il me faut à tout pris le champs position qui contient la position des élèves.
Car, avec une autre table, chaque position a des attributs particuliers.
La conjucture entre les deux tables est primordiale, afin que les élèves aient des fonctions.
Voilà pourquoi il me faut un champs qui contient la position de chaque élève..

----------------
Dommage, la vie n'est pas aussi belle que ça :)
Necnom :)
Bzh
le 02/08/2007 à 18:01
Bzh
Regarde la DONC de LIMIT !

Et tu comprendras qu'elle remplie la fonction que tu souhaites...

Ou alors, je ne comprends rien...

Donne moi un exemple, et je te code ça tt de suite !
Necnom
le 03/08/2007 à 05:55
Necnom
ok ! Voici un exemple.

On joue à jeu.
Les participants se dépêchent de remplir le formulaire pour s'inscrire.
( en s'inscrivant ils ont leur ID )
En s'inscrivant, ils ont une position attribué.
Le tout premier inscrit à la position 1, le second à la position 2 etc ...

Tout ça est dans un table. (mysql)


Une autre table donne les consignes et les attributs de chaque position.
Cette table qui a un champs position ( enfin, ça dépend comment toi tu vas faire ), a un champs consigne.
Pour la donnée ou la position est 1, la consigne est par exemple de trouver la devinette.

-----
On résume :
Le membre qui est à la position 1(table1), doit trouver une devinette ( table 2)
.
Si par malheur il perd, il est éliminé et doit se réinscrire et il laisse sa place au membre après lui.

Donc le membre ( participant ) qui est à la position 2, passe à la position 1. Celui qui est à la position 3, passe à la position 2 etc ...

-----------------
Explication :

Un participant monte d'une position lorsqu'un autre qui à la position antérieur est éliminé ( car il n'a pas réussi la consigne) , ou lorsque ce dernier monte d'un classement.
------------------

A la fin du jeu, le vainqueur sera le premier.

-------------------
But du jeu :
garder ça place, réussir à ses missions, le plus possible pour passer premier et conserver la place de premier.

-------------------

En sachant qu'il y a une table qui donne les consignes en fonction des positions, je me demande comment tu vas faire Bzh ...
---------------
A-Bientôt
Ps : Intéréssant ce jeu hein ?
------
Necnom :)
Bzh
le 03/08/2007 à 20:30
Bzh
Ah oui... en effet !

Bin ecoute aujourd'hui ( et ce week end d'ailleur aussi ) je suis pris par le temps...

Mais en effet, dans ce cas ( tout de même très préci du à cette fameuse jointure entre les deux tables ), je vois mal comment ne pas passer par un autre champ ( position )...

Je vais cogiter un peu tt ça dès que j'ai un tit peu plus de temps...
glab
le 17/08/2007 à 03:43
glab
…hmm je sais pas dirai que ta table doit bien sur comporter un id auto-incremente qui ne bougera pas, mais un autre qui garde en mémoire les mouvements.

Ton gars est 1er, c'est le premier inscrit, son id est 0001 sa position 1. Bon ok… Il répond mal et perd 3 places. Dans le champ des mouvements tu auras donc 1+3=4, il se retouve 4eme et tu selectionnes les autres pour leur asigné leur changement
id=0002 pos=2-1=1 il est bien passé premier. etc

Après c'est vrai que j'ai aucune idée de ce que ça peut bouffer et que pour avoir le classement dans sa globalité c'est pê pas ce qu'il y a de plus pratique mais de toute façon ce jeu est complètement injuste alors... ;)
Répondre
LoadingChargement en cours