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
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
A voir également:
- Problème qur requete mysql
- Mysql download - Télécharger - Bases de données
- Mysql error in file: /engine/classes/mysql.php at line 53 ✓ - Forum Réseaux sociaux
- Mysql a répondu : documentation connexion impossible : paramètres incorrects. - Forum Bases de données
- La requête graphql n’est pas autorisée facebook - Forum Facebook
- Le paquet « mysql-server » n'a pas de version susceptible d'être installée ✓ - Forum Debian
40 réponses
Bonjour
Le OR n'est pas prit en compte et est remplacé par "et".
ça m'étonnerait beaucoup... Je pense plutôt que tu as programmé quelque chose qui revient à un ET. Peux-tu donner un peu plus de détails de ton script ?
Le OR n'est pas prit en compte et est remplacé par "et".
ça m'étonnerait beaucoup... Je pense plutôt que tu as programmé quelque chose qui revient à un ET. Peux-tu donner un peu plus de détails de ton script ?
sophievar83hyeres
Messages postés
41
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
17 juin 2009
13 oct. 2008 à 11:19
13 oct. 2008 à 11:19
Bonjour,
Merci pour ton aide. coici ma requete faite dans dreamweaver:
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$baccarat_ANNUACASINO = "1";
if (isset($_GET['Baccarat_2'])) {
$baccarat_ANNUACASINO = $_GET['Baccarat_2'];
}
$Bingo_ANNUACASINO = "1";
if (isset($_GET['Bingo_5'])) {
$Bingo_ANNUACASINO = $_GET['Bingo_5'];
}
$blackjack_ANNUACASINO = "1";
if (isset($_GET['Blackjack_4'])) {
$blackjack_ANNUACASINO = $_GET['Blackjack_4'];
}
$backgamon_ANNUACASINO = "1";
if (isset($_GET['Backgammon_3'])) {
$backgamon_ANNUACASINO = $_GET['Backgammon_3'];
}
mysql_select_db($database_sophietest, $sophietest);
$query_ANNUACASINO = sprintf("SELECT * FROM detail_casino, jeux , devise, langue WHERE detail_casino.IdCasino=jeux.CasinoId and detail_casino.IdCasino=devise.CasinoId and detail_casino.IdCasino=langue.CasinoId and ((%s=Baccarat_2) OR (%s=Backgammon_3) OR ( %s=Blackjack_4) OR ( %s=Bingo_5))", GetSQLValueString($baccarat_ANNUACASINO, "int"),GetSQLValueString($backgamon_ANNUACASINO, "int"),GetSQLValueString($blackjack_ANNUACASINO, "int"),GetSQLValueString($Bingo_ANNUACASINO, "int"));
SELECT *
FROM detail_casino, jeux , devise, langue
WHERE detail_casino.IdCasino=jeux.CasinoId and detail_casino.IdCasino=devise.CasinoId and detail_casino.IdCasino=langue.CasinoId and ((baccarat=Baccarat_2) OR (backgamon=Backgammon_3) OR ( blackjack=Blackjack_4) OR ( Bingo=Bingo_5))
merci beaucoup pour ta réponse
sophie
Merci pour ton aide. coici ma requete faite dans dreamweaver:
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$baccarat_ANNUACASINO = "1";
if (isset($_GET['Baccarat_2'])) {
$baccarat_ANNUACASINO = $_GET['Baccarat_2'];
}
$Bingo_ANNUACASINO = "1";
if (isset($_GET['Bingo_5'])) {
$Bingo_ANNUACASINO = $_GET['Bingo_5'];
}
$blackjack_ANNUACASINO = "1";
if (isset($_GET['Blackjack_4'])) {
$blackjack_ANNUACASINO = $_GET['Blackjack_4'];
}
$backgamon_ANNUACASINO = "1";
if (isset($_GET['Backgammon_3'])) {
$backgamon_ANNUACASINO = $_GET['Backgammon_3'];
}
mysql_select_db($database_sophietest, $sophietest);
$query_ANNUACASINO = sprintf("SELECT * FROM detail_casino, jeux , devise, langue WHERE detail_casino.IdCasino=jeux.CasinoId and detail_casino.IdCasino=devise.CasinoId and detail_casino.IdCasino=langue.CasinoId and ((%s=Baccarat_2) OR (%s=Backgammon_3) OR ( %s=Blackjack_4) OR ( %s=Bingo_5))", GetSQLValueString($baccarat_ANNUACASINO, "int"),GetSQLValueString($backgamon_ANNUACASINO, "int"),GetSQLValueString($blackjack_ANNUACASINO, "int"),GetSQLValueString($Bingo_ANNUACASINO, "int"));
SELECT *
FROM detail_casino, jeux , devise, langue
WHERE detail_casino.IdCasino=jeux.CasinoId and detail_casino.IdCasino=devise.CasinoId and detail_casino.IdCasino=langue.CasinoId and ((baccarat=Baccarat_2) OR (backgamon=Backgammon_3) OR ( blackjack=Blackjack_4) OR ( Bingo=Bingo_5))
merci beaucoup pour ta réponse
sophie
La reqête a l'air irréprochable.
J'en viens a me demander s'il n'y aurait pas une confusion entre le ET et le OU dans ton esprit. (Ne le prends pas mal, j'ai déjà vu ça)
C'est normal avec le OU que ta requête sorte tous les enregistrements pour lesquels (baccarat=Baccarat_2) ET ceux pour lesquels (backgamon=Backgammon_3) ET ceux pour lesquels ( Bingo=Bingo_5)
Autre possibilité : les trois conditions ne seraient-elles pas toujous présentes ou absentes simultanément ? Dans ce cas, un Et et un OU donnent le même résultat.
J'en viens a me demander s'il n'y aurait pas une confusion entre le ET et le OU dans ton esprit. (Ne le prends pas mal, j'ai déjà vu ça)
C'est normal avec le OU que ta requête sorte tous les enregistrements pour lesquels (baccarat=Baccarat_2) ET ceux pour lesquels (backgamon=Backgammon_3) ET ceux pour lesquels ( Bingo=Bingo_5)
Autre possibilité : les trois conditions ne seraient-elles pas toujous présentes ou absentes simultanément ? Dans ce cas, un Et et un OU donnent le même résultat.
sophievar83hyeres
Messages postés
41
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
17 juin 2009
13 oct. 2008 à 11:49
13 oct. 2008 à 11:49
Non, les 3 conditions seront toujours absentes. Ce sera toujours l'une d'entre elles et jamais plusieurs en même temps.
Car la variable sera passé dans l'url de mon lien.
(exemple: http://localhost/PROJET_CASINO/ANNU_CASINO/annuaire_casinos_jeux.php?Backgammon_3=1)
lien 2 :
http://localhost/PROJET_CASINO/ANNU_CASINO/annuaire_casinos_jeux.php?Baccarat_2=1
As tu une astuce afin d'afficher qu'un condition?
merci pour ton aide
sophie
Car la variable sera passé dans l'url de mon lien.
(exemple: http://localhost/PROJET_CASINO/ANNU_CASINO/annuaire_casinos_jeux.php?Backgammon_3=1)
lien 2 :
http://localhost/PROJET_CASINO/ANNU_CASINO/annuaire_casinos_jeux.php?Baccarat_2=1
As tu une astuce afin d'afficher qu'un condition?
merci pour ton aide
sophie
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 à 14:22
13 oct. 2008 à 14:22
tu n'as pas la solution.
sophie
sophie
papymucho
Messages postés
140
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
1 novembre 2009
220
13 oct. 2008 à 14:26
13 oct. 2008 à 14:26
Bonjour,
Tiens une personne de Hyères, coucou ^^
Bref.... Les liens ne fonctionnent pas?!
Tiens une personne de Hyères, coucou ^^
Bref.... Les liens ne fonctionnent pas?!
papymucho
Messages postés
140
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
1 novembre 2009
220
13 oct. 2008 à 14:30
13 oct. 2008 à 14:30
Hummm, question bête.... pour donner des exemples, avec des liens qui pointent sur le localhost... Je vois pas comment l'on peut vérifier cela ;-)
La requête a l'air bonne en effet. Je check plus en détails.
Edit : ce ne sont pas des exemples pardon..... autant pour moi, je lirais plus attentivement la prochaine fois.
La requête a l'air bonne en effet. Je check plus en détails.
Edit : ce ne sont pas des exemples pardon..... autant pour moi, je lirais plus attentivement la prochaine fois.
papymucho
Messages postés
140
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
1 novembre 2009
220
13 oct. 2008 à 14:41
13 oct. 2008 à 14:41
SELECT *
FROM detail_casino, jeux , devise, langue
WHERE detail_casino.IdCasino=jeux.CasinoId and detail_casino.IdCasino=devise.CasinoId and detail_casino.IdCasino=langue.CasinoId and ((baccarat=Baccarat_2) OR (backgamon=Backgammon_3) OR ( blackjack=Blackjack_4) OR ( Bingo=Bingo_5))
baccarat, backgamon, blackjack ou bingo sont des champs de la table jeux?
FROM detail_casino, jeux , devise, langue
WHERE detail_casino.IdCasino=jeux.CasinoId and detail_casino.IdCasino=devise.CasinoId and detail_casino.IdCasino=langue.CasinoId and ((baccarat=Baccarat_2) OR (backgamon=Backgammon_3) OR ( blackjack=Blackjack_4) OR ( Bingo=Bingo_5))
baccarat, backgamon, blackjack ou bingo sont des champs de la table jeux?
sophievar83hyeres
Messages postés
41
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
17 juin 2009
13 oct. 2008 à 14:50
13 oct. 2008 à 14:50
Bonjour,
Oui ce sont les champs de la table jeux
sophie
Oui ce sont les champs de la table jeux
sophie
Pourquoi dis-tu que la requête fait un ET entre tes 3 comparaisons ?
Peux-tu nous donner un exemple précis de ligne de ta base de données qui remplit le OU entre les conditions sans remplir le ET, et qui n'est pas détectée par ta requête ?
Peux-tu nous donner un exemple précis de ligne de ta base de données qui remplit le OU entre les conditions sans remplir le ET, et qui n'est pas détectée par ta requête ?
sophievar83hyeres
Messages postés
41
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
17 juin 2009
13 oct. 2008 à 14:59
13 oct. 2008 à 14:59
Pourquoi dis-tu que la requête fait un ET entre tes 3 comparaisons ? Peux-tu nous donner un exemple précis de ligne de ta base de données qui remplit le OU entre les conditions sans remplir le ET, et qui n'est pas détectée par ta requête ?
Exemple précis:
Bouton1 'baccarat' dirige vers le lien suivant:
http://localhost/PROJET_CASINO/ANNU_CASINO/annuaire_casinos_jeux.php?Baccarat_2=1
Bouton2 'bingo dirige vers le lien suivant:
http://localhost/PROJET_CASINO/ANNU_CASINO/annuaire_casinos_jeux.php?Bingo_5=1
Bouton2 'craps dirige vers le lien suivant:
http://localhost/PROJET_CASINO/ANNU_CASINO/annuaire_casinos_jeux.php?Craps_6=1
etc...
Et dans ma page .../annuaire_casinos_jeux.php
J'affiche les sites traitant du baccarat pour le bouton1 , les sites traitant traitant du Bingo pour le bouton2.
Donc dans ma requête, j'ai l'une des conditions passé par L URL mais jamais les 3 en même temps. et à l'heure actuelle ce m'affiche les site traitant du bingo, crpas et baccarat.
Tu comprends mieux maintenant?
J'attends ta réponse avec impatience
merci
sophie
Exemple précis:
Bouton1 'baccarat' dirige vers le lien suivant:
http://localhost/PROJET_CASINO/ANNU_CASINO/annuaire_casinos_jeux.php?Baccarat_2=1
Bouton2 'bingo dirige vers le lien suivant:
http://localhost/PROJET_CASINO/ANNU_CASINO/annuaire_casinos_jeux.php?Bingo_5=1
Bouton2 'craps dirige vers le lien suivant:
http://localhost/PROJET_CASINO/ANNU_CASINO/annuaire_casinos_jeux.php?Craps_6=1
etc...
Et dans ma page .../annuaire_casinos_jeux.php
J'affiche les sites traitant du baccarat pour le bouton1 , les sites traitant traitant du Bingo pour le bouton2.
Donc dans ma requête, j'ai l'une des conditions passé par L URL mais jamais les 3 en même temps. et à l'heure actuelle ce m'affiche les site traitant du bingo, crpas et baccarat.
Tu comprends mieux maintenant?
J'attends ta réponse avec impatience
merci
sophie
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:02
13 oct. 2008 à 15:02
Tu as un exemple de MCD s'il te plait? surtout la table jeux.... Et quelques enregistrements avec s'il te plait.
Je pense avoir compris le problème.
Je pense avoir compris le problème.
sophievar83hyeres
Messages postés
41
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
17 juin 2009
13 oct. 2008 à 15:12
13 oct. 2008 à 15:12
que veut dire MCD?
sophievar83hyeres
Messages postés
41
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
17 juin 2009
13 oct. 2008 à 15:15
13 oct. 2008 à 15:15
en fait je veux simplement que mon résultat affiche uniquement la variable passée en URL et le résultat que prend en compte toute les variables.
Le problème doit dorcément venir de ma requete: ce fameux OR!!
Le problème doit dorcément venir de ma requete: ce fameux OR!!
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:20
13 oct. 2008 à 15:20
Et bien en fait je ne pense pas qu'elle vienne de ta requête justement, ta requête est (enfin semble) correct mais je peux me tromper. Le problème c'est, (je pense) que toutes les conditions sont remplies, et du coup éxécutées, donc viendrait du code juste au dessus de ta requête.
Un MCD est un modèle conceptuel de données, la structure de ta base de données si tu préfères.
Celle de la table jeux avec ses enregistrements serait sympa et permettrait d'y voir plus clair :)
Un MCD est un modèle conceptuel de données, la structure de ta base de données si tu préfères.
Celle de la table jeux avec ses enregistrements serait sympa et permettrait d'y voir plus clair :)
sophievar83hyeres
Messages postés
41
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
17 juin 2009
13 oct. 2008 à 15:23
13 oct. 2008 à 15:23
Avant la requete, il y a:
$baccarat_ANNUACASINO = "1";
if (isset($_GET['Baccarat_2'])) {
$baccarat_ANNUACASINO = $_GET['Baccarat_2'];
}
$Bingo_ANNUACASINO = "1";
if (isset($_GET['Bingo_5'])) {
$Bingo_ANNUACASINO = $_GET['Bingo_5'];
}
$blackjack_ANNUACASINO = "1";
if (isset($_GET['Blackjack_4'])) {
$blackjack_ANNUACASINO = $_GET['Blackjack_4'];
}
$backgamon_ANNUACASINO = "1";
if (isset($_GET['Backgammon_3'])) {
$backgamon_ANNUACASINO = $_GET['Backgammon_3'];
}
mysql_select_db($database_sophietest, $sophietest);
$query_ANNUACASINO = sprintf("SELECT * FROM detail_casino, jeux , devise, langue WHERE detail_casino.IdCasino=jeux.CasinoId and detail_casino.IdCasino=devise.CasinoId and detail_casino.IdCasino=langue.CasinoId and ((%s=Baccarat_2) OR (%s=Backgammon_3) OR ( %s=Blackjack_4) OR ( %s=Bingo_5))", GetSQLValueString($baccarat_ANNUACASINO, "int"),GetSQLValueString($backgamon_ANNUACASINO, "int"),GetSQLValueString($blackjack_ANNUACASINO, "int"),GetSQLValueString($Bingo_ANNUACASINO, "int"));
Cela t'aide?
$baccarat_ANNUACASINO = "1";
if (isset($_GET['Baccarat_2'])) {
$baccarat_ANNUACASINO = $_GET['Baccarat_2'];
}
$Bingo_ANNUACASINO = "1";
if (isset($_GET['Bingo_5'])) {
$Bingo_ANNUACASINO = $_GET['Bingo_5'];
}
$blackjack_ANNUACASINO = "1";
if (isset($_GET['Blackjack_4'])) {
$blackjack_ANNUACASINO = $_GET['Blackjack_4'];
}
$backgamon_ANNUACASINO = "1";
if (isset($_GET['Backgammon_3'])) {
$backgamon_ANNUACASINO = $_GET['Backgammon_3'];
}
mysql_select_db($database_sophietest, $sophietest);
$query_ANNUACASINO = sprintf("SELECT * FROM detail_casino, jeux , devise, langue WHERE detail_casino.IdCasino=jeux.CasinoId and detail_casino.IdCasino=devise.CasinoId and detail_casino.IdCasino=langue.CasinoId and ((%s=Baccarat_2) OR (%s=Backgammon_3) OR ( %s=Blackjack_4) OR ( %s=Bingo_5))", GetSQLValueString($baccarat_ANNUACASINO, "int"),GetSQLValueString($backgamon_ANNUACASINO, "int"),GetSQLValueString($blackjack_ANNUACASINO, "int"),GetSQLValueString($Bingo_ANNUACASINO, "int"));
Cela t'aide?
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:29
13 oct. 2008 à 15:29
Oui ça j'ai vu ce qu'il y avait avant la requête, tu l'as posté précédemment :)
Non un MCD ça ressemble plus a un truc comme ça : https://forums.commentcamarche.net/forum/affich-37622101-merise-modele-conceptuel-des-donnees
Comment tu as défini la structure de ta table JEUX, avec les champs, leur typage etc.
Si tu n'en a pas c'est pas grave.
Je dois venir en aide à un utilisateur, je reviens dans une demi-heure, si toto trouve la réponse entre temps, tant mieux :)
Non un MCD ça ressemble plus a un truc comme ça : https://forums.commentcamarche.net/forum/affich-37622101-merise-modele-conceptuel-des-donnees
Comment tu as défini la structure de ta table JEUX, avec les champs, leur typage etc.
Si tu n'en a pas c'est pas grave.
Je dois venir en aide à un utilisateur, je reviens dans une demi-heure, si toto trouve la réponse entre temps, tant mieux :)
sophievar83hyeres
Messages postés
41
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
17 juin 2009
13 oct. 2008 à 15:31
13 oct. 2008 à 15:31
non je n'en ai pas.
ok je t'attends et toto aussi
sophie
ok je t'attends et toto aussi
sophie
sophievar83hyeres
Messages postés
41
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
17 juin 2009
13 oct. 2008 à 15:35
13 oct. 2008 à 15:35
si on ne trouve pas la solution, la seule chose à faire serai de créer 20 pages avec 20 requetes différentes (1 requete sur chaque page): 1 pour bingo, 1 pour Craps etc....
mais c'est ingérable
mais c'est ingérable
Donc dans ma requête, j'ai l'une des conditions passé par L URL mais jamais les 3 en même temps. et à l'heure actuelle ce m'affiche les site traitant du bingo, crpas et baccarat.
Bien sûr que ça te les affiche tous !
dans ton script, tu forces à 1 des valeurs qu'en fait tu voudrais ignorer . Le champ correspondant est à 1 dans ta base. En faisant un OU entre les conditions, tu affiches toujours tout.
On en revient à mon message 3 : tu confonds ET et le OU
$Bingo_ANNUACASINO = 0;
if (isset($_GET['Bingo_5'])) {
$Bingo_ANNUACASINO = $_GET['Bingo_5'];
}
$blackjack_ANNUACASINO = 0;
if (isset($_GET['Blackjack_4'])) {
$blackjack_ANNUACASINO = $_GET['Blackjack_4'];
}
$backgamon_ANNUACASINO = 0;
if (isset($_GET['Backgammon_3'])) {
$backgamon_ANNUACASINO = $_GET['Backgammon_3'];
}
ça devrait mieux marcher
Bien sûr que ça te les affiche tous !
dans ton script, tu forces à 1 des valeurs qu'en fait tu voudrais ignorer . Le champ correspondant est à 1 dans ta base. En faisant un OU entre les conditions, tu affiches toujours tout.
On en revient à mon message 3 : tu confonds ET et le OU
$Bingo_ANNUACASINO = 0;
if (isset($_GET['Bingo_5'])) {
$Bingo_ANNUACASINO = $_GET['Bingo_5'];
}
$blackjack_ANNUACASINO = 0;
if (isset($_GET['Blackjack_4'])) {
$blackjack_ANNUACASINO = $_GET['Blackjack_4'];
}
$backgamon_ANNUACASINO = 0;
if (isset($_GET['Backgammon_3'])) {
$backgamon_ANNUACASINO = $_GET['Backgammon_3'];
}
ça devrait mieux marcher