Bonjour !
Je vous explique !
J'ai une base de donnée qui contient les membres dans une table 'members' avec un champ 'clicks en cours' nommé 'beingclick'. et une table qui contient les enregistrements des clicks nommée 'clicks' qui contient : l'utilisateur qui a cliqué, quel utilisateur il a cliqué et la date au format 0000-00-00 conventionnel.
Le but est d'afficher le membre qui a le plus de clicks en attente 'beingclick' mais qui n'as pas déja été clické aujourd'hui par le membre connecté la journée même.
Le champ beingclick est décimal(15,2).
D'ou le titre le problème est très extra-terrestre car tout marche si admettons le membre x a 2.0 de beingclick et le membre y a 1.0 de beingclick et que aucun des deux n'a été clické le jour même ça affiche le membre x ce qui est correct.
Aussitot que le beingclick du membre x devient plus gros que 2.0, soit 3.0, 12.7 ou meme 281.2, vraiment n'importe quoi plus haut il l'ignore et passe au membre y. ET si le membre y a déja été cliqué cette journée il me dit qu'il n'y a plus personne a cliquer cette journée !
Alors j'aimerais savoir pourquoi quand la valeur du champ beingclick est supérieure à 2.0 il y a une réaction ASBOLUMENT bizare.
Voici la source
//Connection à la DB $connect=mysql_connect($host,$dbuser,$dbpass) or die ("Impossible de se connecter"); mysql_select_db($base, $connect) or die ("Impossible de selectionner la base de donnees");
//Déclaration de la requete # 1dans la table membres $req_toclick1 = mysql_query("SELECT * FROM members WHERE beingclick>'0.9' ORDER BY 'beingclick' DESC LIMIT 1",$connect) or die ("erreur requete");
//Déclaration de la requete #2 dans la table membres $req_toclick2 = mysql_query("SELECT * FROM members WHERE beingclick>'0.9' ORDER BY 'beingclick' DESC",$connect) or die ("erreur requete");
//Mise en array de la requete 1 $membreclick=mysql_fetch_array($req_toclick1);
//Vérifie qu'il y a bien quelqu'un a cliquer if(mysql_num_rows($req_toclick1)!=0) {
//Boucle pour passer ceux à cliquer en commencant par celui qui en a le plus while($membretest=mysql_fetch_array($req_toclick2)) {
//Si la variable $nodouble n'est pas définie continuer if(!$nodouble) { $temps2=date("Y-m-d"); //Déclaration de la variable de la table clicks $req_double = mysql_query("SELECT * FROM clicks WHERE par='$_SESSION[log_username]' AND pour='$membretest[username]' AND jour='$temps2'",$connect);
//Si la personne n'as pas déja été cliquée elle est bonne alors définition de la variable $nodouble pour qu'au second passage du while il ignore (voir commentaire plus haut) if(mysql_num_rows($req_double)==0) { $nodouble="1"; //Affichage du code pour le liej à clicker print("<b>$membretest[username]</b> "); echo '<input type="button" value="'.$la_cliquer.'" name="clicking" onclick="clicking('.$membretest[id].');this.disabled='."'".'true'."'".'" style="background-color: #000000; color: #FFFFFF; font-family: Verdana; font-size: 10pt; border: 1 solid #95CDFC"></input>'; '</font> } } } }
//Si il y a des membres qui sont a plus haut de 0.9 pour le champs 'beingclick' mais qu'ils ont déja été cliqué dans la table 'clicks' if(!$nodouble&&mysql_num_rows($req_toclick1)!=0) { print("You already clicked every body today."); }
//Si il n'y a pas de membre a plus haut de 0.9 pour le champs 'beingclick' elseif(!$nodouble&&mysql_num_rows($req_toclick1)==0) { print("Sorry there is nobody to click."); }
|
Merci d'avance à tout ceux qui m'aident je suis vraiment désespéré !
Mathieu M-G

[ Lien ]