Problème qur requete mysql
Résolu
fleurvar83
-
sophievar83hyeres Messages postés 41 Date d'inscription Statut Membre Dernière intervention -
sophievar83hyeres Messages postés 41 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Problème qur requete mysql
- Mysql community server - Télécharger - Bases de données
- Mysql error 2002 ✓ - Forum Linux / Unix
- Erreur lors de l'envoi de la requête facebook - Forum Facebook
- Erreur de requete facebook - Forum Facebook
- Mysql a répondu : documentation connexion impossible : paramètres incorrects. - Forum Bases de données
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 ?
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.
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
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.
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?
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 ?
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
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.
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!!
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 :)
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?
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 :)
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