Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1849 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Chaine de charactères et base de données

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Chaine de charactères et base de données

n°1109232
angel92
Posté le 06-06-2005 à 09:52:44  profilanswer
 

Salut tout le monde.
 
J'aimerais installer une loterie sur mon site et pour cela j'aurais quelques questions à vous poser.  
J'ai décidé d'enregsitrer 6 numéros dans un seul champ dans une bdd. Pour pouvoir ensuite le comaprer avec le tirage, je vais utiliser la fonction (je ne me souviens plus du nom) qui permet de découper une chaine de caractères avec un espaceur (ici le tiret-) et de placer les différentes parties dans un tableau.  
 
Ensuite pour comaprer, je prend le 1er numero du tirage et je parcours le tableau de la personne qui a joué pour voir si il a touve le meme numero. et je repete cette operation pour les 6 numéros.
 
Pensez vous que je dois utilier cette méthode, elle ne risque pas d'etre trop longue?
Merci beaucoup

mood
Publicité
Posté le 06-06-2005 à 09:52:44  profilanswer
 

n°1109244
yoyo354
Yoyo, le roi du ...
Posté le 06-06-2005 à 10:00:38  profilanswer
 

Et si dans ton numéro de loterie tu as deux fois le même numéro ?  
 
Sinon, il me semble que c'est la fonction explode().

n°1109248
jeff@be
Posté le 06-06-2005 à 10:01:43  profilanswer
 

Il y a plus simple: tu tries le tirage, tu tries les numéros choisis par les joueurs, et tu compares les chaînes de caractères en une fois.


Message édité par jeff@be le 06-06-2005 à 10:02:15
n°1109250
cesarr89
Posté le 06-06-2005 à 10:01:58  profilanswer
 

yoyo354 a écrit :

Et si dans ton numéro de loterie tu as deux fois le même numéro ?
 
Sinon, il me semble que c'est la fonction explode().


 
C'est possible?  :heink:

n°1109254
yoyo354
Yoyo, le roi du ...
Posté le 06-06-2005 à 10:04:59  profilanswer
 

Je veux dire par là :  
6-6-26-85-45-65
ou :  
8-85-63-7-7-25
(C'est dure le matin quand on se lève...Surtout quand on passe son bac dans 4 heures :o)

n°1109255
angel92
Posté le 06-06-2005 à 10:05:05  profilanswer
 

ok merci pour le nom de la fonction.
 
Pense tu que c'est la bonne méthode ?
Surtout qu'il n'y aura pas 2 fois le meme numéro (comme au loto quoi).

n°1109262
cesarr89
Posté le 06-06-2005 à 10:09:44  profilanswer
 

yoyo354 a écrit :

Je veux dire par là :  
6-6-26-85-45-65
ou :  
8-85-63-7-7-25
(C'est dure le matin quand on se lève...Surtout quand on passe son bac dans 4 heures :o)


C'est ce que j'avais compris.
 

angel92 a écrit :

ok merci pour le nom de la fonction.
 
Pense tu que c'est la bonne méthode ?
Surtout qu'il n'y aura pas 2 fois le meme numéro (comme au loto quoi).


 
Ok,ce qui me parait logique...

n°1109264
dedefou
Allias Fiddelcastor
Posté le 06-06-2005 à 10:10:27  profilanswer
 

et y'aura des sous a gagner sur ton site ? :D

n°1109270
angel92
Posté le 06-06-2005 à 10:15:31  profilanswer
 

lol nan meme po ! ptet des lots ou un truc dans le genre, mais bon c'est a l'étude !
 
et sinon, je me demande aussi comment faire le tirage !
enfin pour tirer 6 numéros mais que aucun ne soit pareil.
J'utilise la fonction rand(1,49) mais y a trop de conditions a gérer, donc je me demande si y a pas un truc plus simple !

n°1109274
dedefou
Allias Fiddelcastor
Posté le 06-06-2005 à 10:17:19  profilanswer
 

comment ca trop de condition?

mood
Publicité
Posté le 06-06-2005 à 10:17:19  profilanswer
 

n°1109280
jeff@be
Posté le 06-06-2005 à 10:20:10  profilanswer
 

array_rand()

n°1109281
angel92
Posté le 06-06-2005 à 10:20:13  profilanswer
 

ben on tire le premier numéro avec un rand(1,49), ensuite on tire un 2ieme avec aussi rand(1,49), et on le compare au premier tiré, si c'est egale on refait un rand(1,49), et il faut le recomparé encore une fois etc ...
 
Il faudrais que j'utilise une fonction de récursivité nan ?
Parce que imaginons que le rand(1,49) donc 10 fois d'affilé le meme numéro, faudrait que j'ai prevenu 10 fois la condition.
 
Ou alors je fait un while( numero2 = numéro 1) ...
 
Donc voila, récursivité ou boucle while ?

n°1109286
dedefou
Allias Fiddelcastor
Posté le 06-06-2005 à 10:23:27  profilanswer
 

angel92 a écrit :

ben on tire le premier numéro avec un rand(1,49), ensuite on tire un 2ieme avec aussi rand(1,49), et on le compare au premier tiré, si c'est egale on refait un rand(1,49), et il faut le recomparé encore une fois etc ...
 
Il faudrais que j'utilise une fonction de récursivité nan ?
Parce que imaginons que le rand(1,49) donc 10 fois d'affilé le meme numéro, faudrait que j'ai prevenu 10 fois la condition.
 
Ou alors je fait un while( numero2 = numéro 1) ...
 
Donc voila, récursivité ou boucle while ?


 
tu fais ca avec des array

n°1109288
angel92
Posté le 06-06-2005 à 10:23:54  profilanswer
 

cad ?

n°1109292
jeff@be
Posté le 06-06-2005 à 10:25:01  profilanswer
 

array_rand()  :fou:


Message édité par jeff@be le 06-06-2005 à 10:25:22
n°1109293
angel92
Posté le 06-06-2005 à 10:25:04  profilanswer
 

parce que le while en fait c pas si mal que ca, y a que 5 while a faire quoi

n°1109299
dedefou
Allias Fiddelcastor
Posté le 06-06-2005 à 10:27:17  profilanswer
 

jeff@be a écrit :

array_rand()  :fou:


 
+1

n°1109302
angel92
Posté le 06-06-2005 à 10:28:15  profilanswer
 

Lol ! et je fais comment avec le array rand ?
je cré un tableau de 49 cases, et je pioche dedans ?
Mais comment faire pour ne pas tomber 2 fois sur la meme case ? Faudra aussi que je fasse des whiles nan ?

n°1109308
dedefou
Allias Fiddelcastor
Posté le 06-06-2005 à 10:31:37  profilanswer
 

euh vé pas bete :D

Citation :


array_rand ( array input [, int num_req] )
et num_req spécifie le nombre de valeurs que vous voulez obtenir (par défaut, c'est 1).*
 


est-ce que ca sort les même chiffre si tu met 10 à int num_req ???


Message édité par dedefou le 06-06-2005 à 10:33:31
n°1109313
angel92
Posté le 06-06-2005 à 10:38:04  profilanswer
 

voila une tres bonne question !

n°1109316
dedefou
Allias Fiddelcastor
Posté le 06-06-2005 à 10:40:15  profilanswer
 

angel92 a écrit :

voila une tres bonne question !


 
 ;)  

n°1109319
jeff@be
Posté le 06-06-2005 à 10:41:30  profilanswer
 

Non, ça sortira des clés uniques, pas deux fois la même.

n°1109332
dedefou
Allias Fiddelcastor
Posté le 06-06-2005 à 10:45:38  profilanswer
 

eh bien voilà

n°1109344
pascal_
Posté le 06-06-2005 à 10:50:26  profilanswer
 

Pour ta requête, je pense que c'est une erreur d'enregistrer 6 numéros dans un seul champ. Au niveau de la rapidité c'est mal, et imagine la gueule des requêtes si tu veux faire par la suite des statistiques sur les numéros pariés.
Je te conseille d'enregistrer 6 nombres dans la base. Et en comptant un char par nombre (le TINYINT de mysql par ex), ça prendra moins de place que la chaine avec les tirets.
 
Après, pour avoir le tous les gagnants (ceux qui ont plus de 3 bons numéros par exemple), tu peux faire une requête du style :


  SELECT *,
    ( IF( t1 IN( 15,7,9,14,16,36 ), 1, 0)  
    + IF( t2 IN( 15,7,9,14,16,36 ), 1, 0)
    + ...
    + IF( t6 IN( 15,7,9,14,16,36 ), 1, 0 ) ) as nbJuste
   FROM  
   HAVING nbJuste > 3
   ORDER BY nbJuste


avec 15,7,9,14,16,36 le tirage, tu compte en fait le nombre de bons numéros de chaque joueur.
 
Et tu obtiens d'un coup tous les joueurs qui ont plus de 3 bons numéros  :) .

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Chaine de charactères et base de données

 

Sujets relatifs
Base de donnée consultable a distance[C] Pb chaine de cacracteres...
SQL/PHP et Base de données AccessCreer une interface pour une base de données sous access
Comment extraire des données de SQL Server via Excel Vba????Statistiques sur une base de données
Tag, données d'un fichiers audio 
Plus de sujets relatifs à : Chaine de charactères et base de données


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR