Changer ma requete mysql ^^

Résolu/Fermé
cheese42 Messages postés 860 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 10 octobre 2018 - 23 mars 2009 à 15:41
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 - 25 mars 2009 à 09:12
Bonjour,
voila la requete que je vous explique::: (elle fonctionne hein)^^

else{
do
{
$n1 = rand(1,50);
$n2 = rand(1,50);
$n3 = rand(1,50);
$n4 = rand(1,50);
$n5 = rand(1,50);
$nbonus = rand(1,50);
}
while ( $n1==$n2 or $n1==$n3 or $n1==$n4 or $n1==$n5 or $n1==$nbonus or $n2==$n3 or $n2==$n4 or $n2==$n5 or $n2==$nbonus or $n3==$n4 or $n3==$n5 or $n3==$nbonus or $n4==$n5 or $n4==$nbonus or $n5==$nbonus);
{
echo " <center><b>Bienvenue cher administrateur dans la page du tirage ...</b></center>";
echo " <center> Le résultat du tirage du $today a $now est : <b>$n1</b> - <b>$n2</b> - <b>$n3</b> - <b>$n4</b> - <b>$n5</b> - <b>$nbonus</b> </center> ";
echo " <br /> ";
echo " Voici toutes les personnes qui ont trouvé les 6 bons numéros dans l'ordre ";
echo " <br /><br /> ";
}
$interne = "SELECT * FROM ticket_tbl WHERE numero1='$n1' and numero2='$n2' and numero3='$n3' and numero4='$n4' and numero5='$n5' and numerobonus='$nbonus' ";

que faut- il changer pour que, ----> à la place que je demande de choisir( dans $interne) que mon no1 soit egal au 1, que mon 2 soit egal au 2 etc....
-----> je puisse demander que le numero1 soit egal en meme temps a tous $n, que mon numero2 soit aussi egal a tous les $n, le numero egal a tous les $n, etc....
J'en ai vraiment besoin car la requête de maintenant la, ne m'affiche alors deja que les gagnants 6 numeros et en plus, surtout ils sont gagnants que si ils sont dans l'ordre -_- !!!
A voir également:

12 réponses

NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514
23 mars 2009 à 16:10
SELECT * FROM ticket_tbl WHERE numero1 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero2 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero3 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero4 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero5 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numerobonus IN ('$n1','$n2','$n3','$n4','$n5','$nbonus')

je pense que ça fera l'affaire
0
cheese42 Messages postés 860 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 10 octobre 2018 120
23 mars 2009 à 16:16
je teste ca de suite merci ^^
0
cheese42 Messages postés 860 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 10 octobre 2018 120
23 mars 2009 à 16:24
mince, il me sort cela :::

Erreur SQL !
SELECT * FROM ticket_tbl WHERE numero1 IN ('1','2','3','4','5','6') and numero2 IN ('1','2','3','4','5','6') and numero3 IN ('1','2','3','4','5','6') and numero4 IN ('1','2','3','4','5','6') and numero5 IN ('1','2','3','4','5','6') and numerobonus IN ('1','2','3','4','5','6'
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
0
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514
23 mars 2009 à 16:30
tes numéros dans la base ils sont de quel type? char? int?
0
cheese42 Messages postés 860 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 10 octobre 2018 120
23 mars 2009 à 16:33
id bigint(20) auto_increment
jouer_le date
pseudo varchar(19) latin1_swedish_ci
numero1 varchar(2) latin1_swedish_ci

etc pour les otres num^^
0
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514
23 mars 2009 à 16:37
essaie de lancer juste ce bout de requête :
SELECT * FROM ticket_tbl WHERE numero1 IN ('1','2','3','4','5','6')
puis tente SELECT * FROM ticket_tbl WHERE numero1 IN ('12','22','32','42','11','11')
et dis-moi les deux résultats
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cheese42 Messages postés 860 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 10 octobre 2018 120
23 mars 2009 à 16:46
SELECT * FROM ticket_tbl WHERE numero1 IN ('1','2','3','4','5','6')
ca a priori ca me donne un resultat, mais en fait ca m'indique tous les gagnants, meme si il a juste un bon numero -_-

ensuite, la seconde requete me fait dans le meme style mais je comprends pas le resultat, il est long, tant pis, je le post^^

Voici toutes les personnes qui ont trouvé les 6 bons numéros dans l'ordre

25 net.dove qui a joué son ticket le : 2009-03-20 (((en fait il en a ke 3 bons ))))



Voici toutes les personnes qui ont trouvé 5 bons numéros




Voici toutes les personnes qui ont trouvé 4 bons numéros

38 benjidi72 qui a joué son ticket le : 2009-03-21 ((( en fait il en a ke 0 de bons )))



Voici toutes les personnes qui ont trouvé 5 bons numéros




Voici toutes les personnes qui ont trouvé 4 bons numéros

40 ketos qui a joué son ticket le : 2009-03-21 ((( pareil aucuns de bons )))



Voici toutes les personnes qui ont trouvé 5 bons numéros




Voici toutes les personnes qui ont trouvé 4 bons numéros

42 ketos qui a joué son ticket le : 2009-03-21



Voici toutes les personnes qui ont trouvé 5 bons numéros




Voici toutes les personnes qui ont trouvé 4 bons numéros

43 philko qui a joué son ticket le : 2009-03-21



Voici toutes les personnes qui ont trouvé 5 bons numéros




Voici toutes les personnes qui ont trouvé 4 bons numéros

45 noellamimi qui a joué son ticket le : 2009-03-21



Voici toutes les personnes qui ont trouvé 5 bons numéros




Voici toutes les personnes qui ont trouvé 4 bons numéros

46 danielx qui a joué son ticket le : 2009-03-21



Voici toutes les personnes qui ont trouvé 5 bons numéros




Voici toutes les personnes qui ont trouvé 4 bons numéros

49 sonikette qui a joué son ticket le : 2009-03-22



Voici toutes les personnes qui ont trouvé 5 bons numéros




Voici toutes les personnes qui ont trouvé 4 bons numéros
0
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514
23 mars 2009 à 16:49
Tu peux me recopier la ligne de $interne dans le cas où tu as l'erreur mysql de syntaxe :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
?
0
cheese42 Messages postés 860 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 10 octobre 2018 120
23 mars 2009 à 16:55
oula c'est que a chaque fois que ca beugue, je remets l'original -_-, donc je reprends la ligne sur un des 1ers post ^^ (jai teste les 2)

$interne = "SELECT * FROM ticket_tbl WHERE numero1 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero2 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero3 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero4 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero5 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numerobonus IN ('$n1','$n2','$n3','$n4','$n5','$nbonus'";

$interne = ("SELECT * FROM ticket_tbl WHERE numero1 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero2 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero3 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero4 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero5 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numerobonus IN ('$n1','$n2','$n3','$n4','$n5','$nbonus')";
0
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514
23 mars 2009 à 16:58
y'a une erreur dans chaque :)


$interne = "SELECT * FROM ticket_tbl WHERE numero1 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero2 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero3 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero4 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero5 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numerobonus IN ('$n1','$n2','$n3','$n4','$n5','$nbonus')";

$interne = ("SELECT * FROM ticket_tbl WHERE numero1 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero2 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero3 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero4 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero5 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numerobonus IN ('$n1','$n2','$n3','$n4','$n5','$nbonus'))";
0
cheese42 Messages postés 860 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 10 octobre 2018 120
23 mars 2009 à 17:10
fait *****, bon sang, maintenant, ca me donne avec cela ::
$interne = ("SELECT * FROM wio_ticket_tbl WHERE numero1 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero2 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero3 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero4 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero5 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numerobonus IN ('$n1','$n2','$n3','$n4','$n5','$nbonus')");

donc ca me donne en resultat,
Voici toutes les personnes qui ont trouvé les 6 bons numéros dans l'ordre

35 ketos qui a joué son ticket le : 2009-03-21



Voici toutes les personnes qui ont trouvé 5 bons numéros




Voici toutes les personnes qui ont trouvé 4 bons numéros

56 ketos qui a joué son ticket le : 2009-03-23



Voici toutes les personnes qui ont trouvé 5 bons numéros




Voici toutes les personnes qui ont trouvé 4 bons numéros

57 ketos qui a joué son ticket le : 2009-03-23



Voici toutes les personnes qui ont trouvé 5 bons numéros




Voici toutes les personnes qui ont trouvé 4 bons numéros

La table contenant les resultat des tirages a été mise a jour avec les informations suivantes: date: 2009-03-23, heure: 17:03:06, les numéros: 1 2 3 4 5 6

( en fait c moi ki l'oblige a sortir ces numeros pour les tests,)
et normalement en base le pseudo ketos a bien les 6 bons numeros gagnants mais pas dans le meme sens, style 35ketos, les no joues etaient:6 5 3 4 1 2
ketos56 ::: 1 3 4 5 6 2
et ketos57::: 6 3 5 4 1 2
0
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514
23 mars 2009 à 17:16
ben là la requête est censée te renvoyer toutes les personnes ayant trouvé tous les numéros quel que soit leur ordre. Ce n'est pas ce que tu voulais?
0
cheese42 Messages postés 860 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 10 octobre 2018 120
23 mars 2009 à 17:15
tiens la page complete du tirage :::::::::::::::::::::::::

<?php
include 'header.php';
$today = date("Y-m-d");
$now = date("H:i:s");
$a_executer = 'SELECT jour FROM wio_tirage_tbl';
$reket = mysql_query($a_executer) or die('Erreur SQL !<br />'.$a_executer.'<br />'.mysql_error());
while($data = mysql_fetch_array($reket))
{
$dernier_tirage = $data['jour'] ;
}
if($dernier_tirage==$today)
{
echo " Vous devez attendre au moins une journée avant de refaire un tirage .";
echo " <br /> <br /> ";
die("<form action=\"loto_admin.php\" method=\"post\"><input type=\"hidden\" value=\"$pseudo\" name=\"pseudo\" > <input type=\"hidden\" value=\"$mdp\" name=\"mdp\" ><input type=\"submit\" value=\"Retourner a la page d'administration générale .\"></form>");
}
else
{
do
{
$n1 = rand(1,50);
$n2 = rand(1,50);
$n3 = rand(1,50);
$n4 = rand(1,50);
$n5 = rand(1,50);
$nbonus = rand(1,50);
}


while ( $n1==$n2 or $n1==$n3 or $n1==$n4 or $n1==$n5 or $n1==$nbonus or $n2==$n3 or $n2==$n4 or $n2==$n5 or $n2==$nbonus or $n3==$n4 or $n3==$n5 or $n3==$nbonus or $n4==$n5 or $n4==$nbonus or $n5==$nbonus);
{
echo " <center><b>Bienvenue cher administrateur dans la page du tirage ...</b></center>";
echo " <center> Le résultat du tirage du $today a $now est : <b>$n1</b> - <b>$n2</b> - <b>$n3</b> - <b>$n4</b> - <b>$n5</b> - <b>$nbonus</b> </center> ";
echo " <br /> ";
echo " Voici toutes les personnes qui ont trouvé les 6 bons numéros dans l'ordre ";
echo " <br /><br /> ";
}
$interne = ("SELECT * FROM wio_ticket_tbl WHERE numero1 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero2 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero3 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero4 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numero5 IN ('$n1','$n2','$n3','$n4','$n5','$nbonus') and numerobonus IN ('$n1','$n2','$n3','$n4','$n5','$nbonus')");



$requette = mysql_query("$interne") or die('Erreur SQL !<br />'.$interne.'<br />'.mysql_error());
while($data = mysql_fetch_array($requette))
{
echo '<b>'.$data['id'].' '.$data['pseudo'].'</b>';
echo ' <i>qui a joué son ticket le : '.$data['jouer_le'].'</i><br />';
echo '<br /><br /><br />Voici toutes les personnes qui ont trouvé 5 bons numéros<br /><br />';
echo '';
echo '<br /><br /><br />Voici toutes les personnes qui ont trouvé 4 bons numéros<br /><br />';
echo '';
}
$ajout = "INSERT INTO wio_tirage_tbl VALUES('','$today','$now','$n1','$n2','$n3','$n4','$n5','$nbonus')";
$effectuer = mysql_query($ajout) or die('Erreur SQL !<br />'.$ajout.'<br />'.mysql_error());
echo "La table contenant les resultat des tirages a été mise a jour avec les informations suivantes: date: $today, heure: $now, les numéros: $n1 $n2 $n3 $n4 $n5 $nbonus";
}mysql_close();
?>
0
cheese42 Messages postés 860 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 10 octobre 2018 120
23 mars 2009 à 17:17
oui, je pense que cela fera super bien l'affaire finalement^^
0
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514
24 mars 2009 à 08:50
ça marche bien alors, ou y'a encore un souci?
0
cheese42 Messages postés 860 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 10 octobre 2018 120
24 mars 2009 à 11:48
Bjr NookZ, merci bien finalement j'ai donc laisse celle que tu m'as envoyee et au moins , si le membre a les 6 numeros ordre ou desordre, c'est nikel, ca l'affiche, donc ca marche^^
juste un truc, c'est bete, j'aurai bien voulu pouvoir faire gagner aussi au rang 5 et rang 4, mais bon ^^..........
0
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514
24 mars 2009 à 12:00
Ben y'a toujours la technique que je t'ai proposé dans l'autre topic. Pour l'appliquer dans le cas où n'importe quel ordre est accepté, il suffit de faire un tri croissant des éléments de ta combinaison gagnante et de même pour les combinaisons proposées et voilà, tu peux réutiliser
0
cheese42 Messages postés 860 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 10 octobre 2018 120
24 mars 2009 à 17:33
re, non mais c'est bon ce que tu m'as envoye ca marche nikel, pour l'ordre ou le desordre a ceux qui ont les 6 bons numeros, c'est bon, mais c'etait pour afficher les gagnants a 5 numeros trouves sur les 6 et les gagnants a 4 num sur les 6 sortis, c'est la, la requete doit etre vraiment baleze, non ????? merci ^^.........
0
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514
25 mars 2009 à 09:12
Ben c'est ce que je te dis, tu peux le faire en requête mais ce serait long et pas optimisé.

Ce que je te conseille c'est de faire ça :
1/Récupérer la combinaison gagnante
2/Trier les chiffres qui la compose par ordre croissant et inclure un séparateur(ici /)
3/Récupérer la combinaison proposée par l'utilisateur
4/Trier les chiffres qui la compose par ordre croissant et inclure un séparateur (ici /)
5/faire une comparaison à l'aide d'expressions régulières et de strstr du style
strstr($combinaison_joueur,$n2/$n3/$n4/$n5/$nbonus ) ->retourne false si ne trouve pas la chaîne de caractères "$n2/$n3/$n4/$n5/$nbonus" dans la variable $combinaison_joueur
strstr($combinaison_joueur,$n1/$n2/$n3/$n4/$n5 )
ces deux tests permettent de vérifier si l'utilisateur a trouvé une combinaison composée de tous les chiffres sauf le plus petit ou de tous sauf le plus grand

et les expressions pour tous les chiffres du milieu (de $n2 à $n5)
regexp =^$n1/[^$n2]/$n3/$n4/$n5/$nbonus
0