[réglé] tirage au sort - forum alsacréations : css et standards web

[réglé] tirage au sort - forum alsacréations : css et standards web forum alsacréations : css et standards web accueil s'inscrire règles recherche faqtutorielsblogemploiboutique nouveau sur le forum ? voici votre case départ pour bien débuter. liens contextuels : forum alsacréations : css et standards web · standards web et langages serveurs · [réglé] tirage au sort rechercher dans le sujet : auteur makta # 29 oct 2007 - 15:31:38 9 posts bonjour, j'ai actuellement deux problèmes, un concerne l'insertion de données dans une table (j'utilise mysql 5.0) et mon autre problème concerne la réalisation d'un tirage au sort sur les valeur de la table précédente. pour mon premier problème voici mon code : <!doctype html public "-//w3c//dtd xhtml 1.0 strict//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>rédiger une news</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> h3, form { text-align:center; } </style> </head> <body> <form action="joueur.php" method="post"> nom: <input type="text" name="nom" ><br><br> login: <input type="text" name="login"><br><br> email: <input type="text" name="email" ><br><br> <input type="submit" value="envoyer"> <?php if (isset ($_post['nom']) and isset ($_post['login']) and isset ($_post['mail'])) { //connection a la base de données $host = localhost; $user = ***; $bdd = ***; $passwd = ***; mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur"); mysql_select_db($bdd) or die("erreur de connexion a la base de donnees"); if ($_post['nom']!= null and $_post['login']!=null and $_post['mail']!=null) { //on passe a des variables les differents textes entres par l'admin $nom = htmlentities ($_post['nom']); $login = htmlentities ($_post['login']); $email = htmlentities ($_post['email']); //insertion des nouvelles news sous forme de variable dans la base de données mysql_query("insert into joueur1 values('', '" . $nom . "', '" . $login . "', '" . $email . "')"); mysql_close(); } else { echo "veuillez remplir tous les champs";} } ?> </form> </body> </html> le problème est que les valeurs entrées dans les champs ne rnetre pas dans la table, ça sent l'erreur con mais je vois pas ^^' pour mon deuxième problème je vous explique un peu, le formulaire précédent enregistre donc des utilisateurs pour un concour. ces utilisateurs peuvent s'enregistrer plusieurs durant toute la durée du concours (super des doublons dans la table... ). a la fin de la période de jeu, je rempli un autre formulaire qui permettra de lancer le tirage au sort. ce formulaire est composé d'un champs où l'on rentre le nombre de gagnant et d'un bouton lançant le tirage au sort. ok "utilise la fonction random me dira-t-on" et je suis d'accord mais j'ai un peu de mal à saisir le code qu'il faut générer pour tirer au sort 8 personnes differentes dans ma table sachant qu'il y a des doublons et cela en un seul click bouton ^^' si quelqu'un avait une piste ou suggestion à ce sujet je suis preneur. modifié par makta (06 nov 2007 - 14:15) brucefeuillette # 29 oct 2007 - 16:48:23 84 posts hello ! personnellement je ne suis pas très fan de l'écriture values() pour le insertions. insert into joueur1 set login='$login', nom='$nom'... etc l'avantage c'est que les champs qui s'auto-incrémentent se mettent à jour tout seuls. pour ton problème de doublons, 2 solutions. soit tu vérifies à l'inscription que le login ou le nom ou le mail ou les 3 n'existent pas dans ta table avant insertion. soit tu fais une requête avec un group by pour éliminer les doublons en sortie. le code dessous groupe les réponses par login, donc si un login est noté 10 fois, il ne sortira qu'une seule fois. il est possible de grouper sur plusieurs colonnes. select login, nom, email from joueur1 group by login order by rand() limit 8 avec ça, ça devrait tourner... modifié par brucefeuillette (29 oct 2007 - 16:49) heyoan # 29 oct 2007 - 17:35:04 un p'tit kiwiz coca ? 1041 posts salut, brucefeuillette a écrit :l'avantage c'est que les champs qui s'auto-incrémentent se mettent à jour tout seuls.euh... ben c'est pareil avec values ... sinon makta ton code ne peut pas fonctionner puisque tu testes $_post['mail'] alors que le name de ton <input> est email ! une suggestion :<form action="joueur.php" method="post"> <p> <label for="nom">nom:</label> <input type="text" name="nom" /> </p> <p> <label for="login">login:</label> <input type="text" name="login" /> </p> <p> <label for="email">email:</label> <input type="text" name="email" /> </p> <p> <input type="submit" name="envoyer" value="envoyer" /> </p> </form> <?php if (isset($_post['envoyer'])) { if ((!empty($_post['nom'])) && (!empty($_post['login'])) && (!empty($_post['email']))) { //connection a la base de données // ... //on passe a des variables les differents textes entres par l'admin $nom = htmlentities ($_post['nom']); $login = htmlentities ($_post['login']); $email = htmlentities ($_post['email']); //insertion des nouvelles news sous forme de variable dans la base de données $sql = "insert into joueur1 values('', '" . $nom . "', '" . $login . "', '" . $email . "')"; mysql_query($sql) or die('erreur'); mysql_close(); } else { echo "veuillez remplir tous les champs"; } } ?> a+un être en tant qu'être ne peut-il être autre qu'il n'est s'il n'exprime pas lui même son être ?   siddhy # 29 oct 2007 - 17:35:36 49 posts salut, a priori, pour ton 1er probleme, il y aurait peut etre une erreur de frappe sur le champ 'mail' ou 'email': php : if ($_post['nom']!= null and $_post['login']!=null and $_post['mail']!=null) html : email: <input type="text" name="email" ><br><br> <edit>... trop lent modifié par julien royer (29 oct 2007 - 17:45)il faut s'élever au moyen de ce qui cause la chute...   makta # 29 oct 2007 - 17:39:19 9 posts le problème ne vient pas de la requête j'en suis quasiment certain (testé directement sur la base ça fonctionne parfaitement), de plus la syntaxe que tu me donnes ne fonctionne malheureusement pas non plus. pour le problème numero 2, les doublons ne me gêne pas tant que ça, je suis de toute façon obligé de les garder vu que cela m'est demandé. du coup pour le rand j'utilise un rand dans une requête ce qui donne : <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>rédiger une news</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> h3, form { text-align:center; } </style> </head> <body> <form action="mo.php" method="post"> nombre de gagnants :<input type ="text" name="hasard"> <?php //connection a la base de données $host = localhost; $user = root; $bdd = jeux_pdcn; $passwd = vpfgmwnv; mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur"); mysql_select_db($bdd) or die("erreur de connexion a la base de donnees"); if ($_post['hasard'] != null) { $hasard = htmlentities($_post['hasard']); $r = mysql_query("select email from joueur1 order by rand() limit '".$hasard."'"); mysql_close(); } ?> <input type="submit" value="tirage"> </form> </body> </html> du coup même probleme que pour le 1 echo du champs ça marche j'ai bien la valeur que je met dans les champs, echo du resultat...rien même en rentrant comme valeur 1 pour qu'il ne me sorte qu'un seul email, il me le sort pas :s makta # 29 oct 2007 - 17:59:34 9 posts merci heyoan et siddhy pour vos réponses, en effet ça sentait l'erreur d'innatention. réponse de ton code heyoan, erreur. la query ne passe pas heyoan # 29 oct 2007 - 20:27:46 un p'tit kiwiz coca ? 1041 posts re', en remplaçant :mysql_query($sql) or die('erreur');parmysql_query($sql) or die(mysql_error());tu auras un message plus clair sur ce qui ne va pas... et sinon un echo $sql."<br />"; après avoir alimenté la variable permettrait de voir tout de suite l'erreur. autresinon : la table joueur1 contient bien 4 champs dont le premier a l'attribut auto_increment ? a+ modifié par heyoan (29 oct 2007 - 20:28)un être en tant qu'être ne peut-il être autre qu'il n'est s'il n'exprime pas lui même son être ?   brucefeuillette # 30 oct 2007 - 08:33:52 84 posts la différence entre set et le values() c'est que dans values, il faut renseigner tous les champs, y compris ceux qui sont vides, et dans l'ordre alors qu'avec set, on adresse directement les champs concernés, sans s'occuper de ceux qui sont vides. (oui, je suis fainéant des fois ) pour la requête qui coince, quelque fois ce que je fais c'est un echo, comme heyoan indique, c'est de tester directement la requête dans mysql. une fois qu'elle est d'aplomb je rajoute mes variables php et je la mets dans le code. au moins ça réduit les champs de recherche, si ça fonctionne avant et que le fait de passe en php coince, c'est qu'une variable passe mal. makta # 30 oct 2007 - 09:26:57 9 posts personnelement le "set" je ne m'en sert que pour les update merci à vous en tout cas, cela fonctionne. bien que je ne comprenne pas en quoi remplacer le "or die('erreur')" par "or die(mysql_error());" ait un quelconque rapport avec le fonctionnement de la requête...m'enfin^^ maintenant ça ofnctionne alors qu'hier soir non, je vais voir pour mon problème de tirage au sort si le problème n'est pas le même. encore merci pour votre aide. p.s: oui oui le premier champs étant l'id il était bien en auto-incrémente ^^ halindel # 30 oct 2007 - 11:38:08 faite attention aux kiwiz !! 430 posts bonjour, remplacer ceux que tu as dit permet de récupéré l'erreur mysql qui est retournée afin de savoir pourquoi celle ci ne c'est pas exécute. c'était pour vérifier que ta requête était bonne. et ne changer rien à ton code.je comprends jamais rien :'( makta # 30 oct 2007 - 11:49:37 9 posts je sais bien, c'est pour ça que je ne comprends aps pourquoi ça ne marchait pas hier et que ce matin cela fonctionne très bien. ^^ makta # 06 nov 2007 - 09:38:35 9 posts je me permets de faire remonter le topic n'ayant pas réussi à résoudre mon problème. je suis toujours avec ma table à doublons, suite à ça les enregistrements des joueurs tirés au sort seront donc stockés dans une table que j'appelle "gagnant" ayant pour caractéristique un email unique. donc si je tire au sort 2 fois la même personne il va falloir que que je boucle afin de relancer le tirage automatiquement et avoir le bon nombre de ggnants sélectionnés. voilà le début de mon code: <form action="new_5.php" method="post"> nombre de gagnants :<input type ="text" name="hasard"> <?php //connection a la base de données ... mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur"); mysql_select_db($bdd) or die("erreur de connexion a la base de donnees"); if ($_post['hasard'] != null) { $hasard = htmlentities($_post['hasard']); $result = mysql_query("select email from joueur7 order by rand() limit ".$hasard); if (!$result) { echo 'impossible d\'exécuter la requête : ' . mysql_error(); exit; } $row = mysql_fetch_array($result); echo $row[0]; //la valeur du champ email $s = mysql_query("insert into gagnant values ('".$row[0]."')"); mysql_close(); } ?> <input type="submit" value="tirage"> un probleme de réglé, reste plus que le fait de tirer plusieurs personne et de n'avoir qu'un seul résultat qui foire. merci de m'éclairer, pour le premier problème faut-il boucler?^^' modifié par makta (06 nov 2007 - 11:03) heyoan # 06 nov 2007 - 11:14:42 un p'tit kiwiz coca ? 1041 posts salut makta, tu te simplifierais la vie en ne sélectionnant pas 2 gagnants ayant le même email ! pour cela (en reprenant le code de brucefeuillette) tu pourrais faire :select login, nom, email from joueur1 group by email order by rand() limit 8 a+un être en tant qu'être ne peut-il être autre qu'il n'est s'il n'exprime pas lui même son être ?   makta # 06 nov 2007 - 11:29:30 9 posts j'avoue le "groupe by" est une solution aux doublons même si cela ne me dérange vu que dans ma table gagnant j'ai mis l'email en clé unique, il ne peut donc être enregistré qu'une fois. pour le coup c'est vrai que ça optimise le tirage évitant la boucle au niveau du php, je n'y avais pas pensé merci. c'est l'insertion dans la table qui me pose plus probleme sachant que la valeur email inséré dans la table est ici le $row[0] or ce $row ne m'affiche qu'un seul résultat même lorsque je lui en demande 2. je n'ai donc la possibilité d'enregistrer qu'un seul email par clic... modification à faire au niveau du tableau ou? en tout cas encore merci heyoan. modifié par makta (06 nov 2007 - 11:50) heyoan # 06 nov 2007 - 12:43:14 un p'tit kiwiz coca ? 1041 posts heu... ben faut faire une boucle (foreach, while, ou autre...) ! sinon dans ton cas il suffit de le faire en une seule fois :insert into gagnant (select distinct email from joueur1 order by rand() limit 8) a+ ps: un exemple de boucle avec while. modifié par heyoan (06 nov 2007 - 13:32)un être en tant qu'être ne peut-il être autre qu'il n'est s'il n'exprime pas lui même son être ?   makta # 06 nov 2007 - 14:14:14 9 posts encore merci heyoan, tout fonctionne. désolé du dérangement pour rien ^^' je m'étais déjà servi de ton lien pour d'autre partie de mon code. très utile les liens à lire avant de poster^^ prévenir un modérateur aller à  * accueilsalon général et débutantssalon spécifique aux tutoriels et articles alsacréationshtml, xhtml, sémantique webxml / xsl / rss / foafcss et mise en formedom, javascript, ecmascriptapplications web en lignestandards web et langages serveursaccessibilité du webencodage et internationalisationressources et liens sur les standardsergonomie et esthétique générale, demandes d'avis et de critiquesle bar du forumjeux et concours du forumsalon des modosa vos marquesbest-of les références web : openweb.eu.org - opquast.com - webmaster-hub.com - webrankinfo.com - salemioche.net - web-pour-tous.org - webonorme.org nos partenaires : editions eyrolles - location vacances france - location vacances europe - bons plans paris nikozen : hébergement - réalisation : alsacreations.fr mesure d'audience roi frequentation par powered by phedio v3.7.9 © dewcontacter l'administrateur - 21.1 ms - charte

Acceuil

suivante

[réglé] tirage au sort - forum alsacréations : css et standards web  RMC.fr - Tirage au sort des quarts de finale de la Coupe de la Ligue -  Photocouleur : vos tirages photos couleur grand format d’après ...  Tirage de l'oracle de la Triade  Football - Le tirage du 7e tour  Football - 7e tour : le tirage d'Outre-mer  Astrologie, tirage de tarot et numérologie  Votre labo de développement photo en ligne - Photostore  FB Numérique, tirage photo numérique sur toile et transfert de ...  FRANCE 2 - Tirage ardu pour le TFC, délicat pour Rennes - Coupes d ...  Le tirage de l’Euro 2008 avec Estelle Denis - Toutelatele.com  Fastlab - Service en ligne de tirage photo numérique  Masters Cup à Shangaï, le tirage au sort ! - Parlons Tennis, le ...  FOTO.com France : Développement photo, Tirage photo numérique ...  Voyance par l'Oracle de Belline, tirage et interprétation de l ...  Fotodiscount : Tirage et développement photo numérique de qualité ...  Pixiphot : tirage photo numérique  ICONEA : développement photo numérique - tirage photo ...  Bienvenue - Participez chaque mois au tirage au sort !  Tirage photo numérique grand format : Photogénie  tirage  Tirage photo et developpement de photo numérique  Tennis: tirage favorable pour Federer au Masters de Shanghaï - La ...  Photographie: gagner au tirage - La Tribune.fr  Sport24 - Football : Tirage paisible pour la Ligue 2 (08/11/2007 ...  Yahoo! Astrologie Perso  TousLesLabos.com : Tirage photo (gratuit, code promo, comparatif ...  Développement Photo, Comparatif Des Prix De Tirage Photos Numériques  Le Figaro - Automobile : Alfa Romeo 8c : tirage limité  Tirage photo en ligne : Annuaire OositoO  Tirage Tarots Gratuits - Tirage des tarots : gratuit ! - auFeminin.com  Tirages Limités  Coupe de la Ligue : Quarts de finale :<BR> Tirage au sort aujourd'hui  Tirage au sort : 10 albums Heavy Liquid (Paul Pope) à gagner avec ...  Bellapix : developpement photo - tirage photo numerique - albums photo  Tarot Voyance Gratuit Tirage Jeu de Tarots de Marseille Tarologie ...  [Photoshop] Préparer un fichier pour tirage Photoweb  Tirage au sort de l'open d'ALLEMAGNE - ITTF Pro Tour - Tennis de ...  Le tirage photo numérique  Tirage photo numérique  Coupe de France 2e tour  Tirage Coupe de France 1e tour  Tirage et développement photo numérique sur internet Photoweb  Tirage photo numérique sur Internet  Jeux gratuits tirage au sort Informatique Gifs  [Big Bang Blog] - Le tirage au sort, d’Etienne Chouard à Ségolène ...  Chambre avec vues édition et vente de tirages  Tarot de Marseille gratuit  Sport24 - Football : Le tirage du 7e tour  tirage photos Comparer les prix et offres Développement Photo ...  Apple - Support - Services photo - Options de commande et de tirage  Tirage photos : guide d'achat nouvelle génération  Tirage photo numérique : comparatif des offres.  MisterClic, developpement en ligne de photo numerique, tirage ...  Flickr soigne le tirage de vos photos par CNETFrance.fr  allAfrica.com: Tunisie: CAN 2008 en Angola - Tirage au sort  allAfrica.com: Sénégal: Tirage au sort des préliminaires du ...  Loto, tirage du Samedi 10 Novembre 2007  Tirage photo numérique – développement photos numériques  tirage au charbon direct  tirage contact sur papier azo