Problème qur requete mysql

Résolu/Fermé
fleurvar83 - 13 oct. 2008 à 11:00
sophievar83hyeres Messages postés 41 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 17 juin 2009 - 13 oct. 2008 à 17:00
Bonjour,

Si vous pouviez m'aider sur ma requete.

SELECT *
FROM mes tables
WHERE condition1 and condition2 and ((condition3) OR (condition4) OR ( condition5))

J'ai créa une méta condition entre parenthèse. mais le résultat prend les condition 3 et 4 et 5, alors que je veux qu'il prenne l'une des conditions (3 ou 4 ou 5) passé dans mon url.

Le OR n'est pas prit en compte et est remplacé par "et".

Merci pour votre aide.
sophie

40 réponses

sophievar83hyeres Messages postés 41 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 17 juin 2009
13 oct. 2008 à 15:41
cela ne marche toujours pas.
0
papymucho Messages postés 140 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 1 novembre 2009 220
13 oct. 2008 à 15:41
C'est ce qu'il me semblait également ;-)

Edit : A mince.... mais c'est quelque chose comme cela je pense...

Non, inutile de faire une 20aines de requêtes; beurk :p

Bon est-ce que tu peux faire un export de ta table JEUX stp, et l'afficher ici. Merci.
0
$Bingo_ANNUACASINO = "9999";
if (isset($_GET['Bingo_5'])) {
$Bingo_ANNUACASINO = $_GET['Bingo_5'];
}
$blackjack_ANNUACASINO = "9999";
if (isset($_GET['Blackjack_4'])) {
$blackjack_ANNUACASINO = $_GET['Blackjack_4'];
}
$backgamon_ANNUACASINO = "9999";
if (isset($_GET['Backgammon_3'])) {
$backgamon_ANNUACASINO = $_GET['Backgammon_3'];
}

Tu donnes à tes variables par défaut la même valeur que morsque tu les sélectionnes. Normal que toutes les variantes soient toujoures toutes sélectionnées.

Au passage, comme je te l'avais dit dès mon message n° 3, tu as considéré que la requête faisait un Et parce que tu voyais les résultats correspondnat Bingo ET ceux correspondnat au blackjack, etc... Or, ceci correspond bien au résultat d'un OU
0
sophievar83hyeres Messages postés 41 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 17 juin 2009
13 oct. 2008 à 15:53
-- Structure de la table `jeux`
--

CREATE TABLE `jeux` (
`CasinoId` smallint(6) unsigned NOT NULL,
`Autre_1` tinyint(1) unsigned NOT NULL default '0',
`Baccarat_2` tinyint(1) unsigned NOT NULL default '0',
`Backgammon_3` tinyint(1) unsigned NOT NULL default '0',
`Blackjack_4` tinyint(1) unsigned NOT NULL default '0',
`Bingo_5` tinyint(1) unsigned NOT NULL default '0',
)


INSERT INTO `jeux` (`CasinoId`, `Autre_1`, `Baccarat_2`, `Backgammon_3`, `Blackjack_4`, `Bingo_5`,) VALUES
(1, 1, 0, 0, 1, 0, '),
0

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

Posez votre question
sophievar83hyeres Messages postés 41 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 17 juin 2009
13 oct. 2008 à 15:54
excuse moi toto, mais je n'ai pas compris du tout ton dernier message.
0
Regardons le cas du Bingo.
Dans ton script, tu initialises $Bingo_ANNUACASINO = "1";
si dans l'url, il n'y a pas Bingo_5, cette valeur va rester la même.
Alors que s'il y avait Bingo_5=1, tu vas faire $Bingo_ANNUACASINO, ce qui ne change rien du tout.

Quand tu fais ta requête, toutes tes lignes où Bingo_5=1 vont sortir.

Avec le même raisonnement, tu vois que les lignes où Blackjack_4=1 et celles où Backgammon_3=1 vont sortir aussi.

Comme (je suppose) il y a toujours au moins un de ces jeux qui est à 1, toutes les lignes sortent.
Le OU de la requête se comporte bien comme un OU et non pas comme un ET
0
pardon, je ne m'étais pas relu
"tu vas faire $Bingo_ANNUACASINO" à remplacer par "tu vas faire $Bingo_ANNUACASINO=1"
0
sophievar83hyeres Messages postés 41 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 17 juin 2009
13 oct. 2008 à 16:17
oui mais alors comment faire pour que le resultat affiche uniquement la variable passé en url.
c'est à dire pour que ce lien http://localhost/PROJET_CASINO/ANNU_CASINO/annuaire_casinos_jeux.php?Baccarat_2=1 affiche uniquement les baccarats et pas les autres jeux ?
0
papymucho Messages postés 140 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 1 novembre 2009 220
13 oct. 2008 à 16:19
Voilà, c'est bien ce que je pensais. Y'a une solution, c'est découpé la chaine de caractère au "=", de mettre dans un tableau ce qu'il y a avant, du style url[0]=bingo etc.... et url[1]=ta_variable.
0
En initialisant à 9999 comme dans mon message 23, ça ne marche pas ?
0
papymucho Messages postés 140 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 1 novembre 2009 220
13 oct. 2008 à 16:21
Je ne vois pas ce que cela change pour l'initialisation a 9999, ou a 0?

pour en revenir a ce que je disais, faire une boucle, et comparer la première colonne du tableau.
0
Je ne vois pas ce que cela change pour l'initialisation a 9999, ou a 0?
Dans la table, il y a des 0. Comme il y a toujours au moins un champ avec 0, toutes les lignes sortent
0
sophievar83hyeres Messages postés 41 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 17 juin 2009
13 oct. 2008 à 16:27
papymucho peux tu me donner un exemple concret concernant le découpage. excusez moi mais là je nage....
0
sophievar83hyeres Messages postés 41 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 17 juin 2009
13 oct. 2008 à 16:33
toto, j'ai fait comme tu m'as dit $Bingo_ANNUACASINO=1 mais cela ne marche toujours pas
0
papymucho Messages postés 140 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 1 novembre 2009 220
13 oct. 2008 à 16:36
je suis en conf call là, je n'ai plus le temps désolé :/ Regarde avec la fonction split, ou avec toto... Je termine dans une heure, je repasserais une fois mon travail terminé.

Cordialement,
0
comme tu m'as dit $Bingo_ANNUACASINO=1 Où j'ai dit ça moi ?
Justement ni 0 ni 1 !
il faut une autre valeur, par exemple 999. Et pas que sur $Bingo_ANNUACASINO, relis le post 23
0
sophievar83hyeres Messages postés 41 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 17 juin 2009
13 oct. 2008 à 16:39
je dois me deconnecter pour à 17h.

en tout cas merci beaucoup pour ton aide
0
sophievar83hyeres Messages postés 41 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 17 juin 2009
13 oct. 2008 à 16:41
oui tu as dit ça en poste27.

concernant le post 23, j'avais testé tout à l'heure mais cela ne marchait pas non plus
0
C'était bien post 23. Le post 27 était une correction du post 26.
0
sophievar83hyeres Messages postés 41 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 17 juin 2009
13 oct. 2008 à 16:51
CA Y EST !!!!!!!!!!!!!!!!!!! Cela marche.

J'ai fais comme tu m'a dis toto, (initialisé avec des chiffres comme 999) pourtant cela ne marchait pas tout à l'heure mais maintenant cela fonctionne !!!!!

mille merci !!!!
sophie
0
papymucho Messages postés 140 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 1 novembre 2009 220
13 oct. 2008 à 16:55
gg toto ;-)
Je suis parti en vrille avec mon split lol..

Edit : passe ton sujet en résolu Sophie, merci ;-)
0
sophievar83hyeres Messages postés 41 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 17 juin 2009
13 oct. 2008 à 17:00
ok je le mets en résolu.

et merci encore
très bonne soirée

sophie
0