SQL : Question concernant une requête
Résolu/Fermé
Moi
-
14 déc. 2009 à 12:52
cycloop Messages postés 69 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 8 avril 2013 - 14 déc. 2009 à 14:52
cycloop Messages postés 69 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 8 avril 2013 - 14 déc. 2009 à 14:52
A voir également:
- SQL : Question concernant une requête
- Récupération serveur sql - Télécharger - Gestion de données
- Logiciel sql - Télécharger - Bases de données
- Sql pix - Forum Python
- Dupliquer une table sql ✓ - Forum Programmation
- Sql commence par ✓ - Forum Webmastering
6 réponses
cycloop
Messages postés
69
Date d'inscription
mercredi 22 octobre 2008
Statut
Membre
Dernière intervention
8 avril 2013
17
14 déc. 2009 à 13:49
14 déc. 2009 à 13:49
AND est un opérateur prioritaire sur OR. donc en fait ta requete actuelle fait ça :
WHERE ( (lid > '0' AND pid != '$pid') AND user_co LIKE '$codepostal%' ) OR [tout le reste] )
ce qu'il faut que tu fasse c'est ajouter une parenthèse avant le premier user_co LIKE...
que tu ferme à la fin.
WHERE ( (lid > '0' AND pid != '$pid') AND user_co LIKE '$codepostal%' ) OR [tout le reste] )
ce qu'il faut que tu fasse c'est ajouter une parenthèse avant le premier user_co LIKE...
que tu ferme à la fin.
$sql2 = "SELECT user FROM membres "; $sql2 .= "WHERE (lid > '0' AND pid != '$pid') "; $sql2 .= "AND (user_co LIKE '$codepostal%' "; <<< parenthèse ouvrante $sql2 .= "OR user_reg LIKE '$regionfr%' "; $sql2 .= "OR user_fr LIKE '$from%' "; $sql2 .= "OR user_planete LIKE '$planete%' )"; <<< parenthèse fermante $sql2 .= "ORDER BY RAND() LIMIT 0,10";
Merci cycloop pour ta réponse, j'avais aussi essayé comme tu as dis, mais ça ne marche pas. elle me renvoie un message d'erreur :
Je ne comprend plus rien :-(
Error number: 1064 Error message: 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 'ORDER BY RAND() LIMIT 0,10' at line 1
Je ne comprend plus rien :-(
Oops, ça marche, mais comme ceci :
C'est bizarre non ?
$sql2 = "SELECT user FROM membres "; $sql2 .= "WHERE (lid > '0' AND pid != '$pid') "; $sql2 .= "AND (user_co LIKE '$codepostal%' "; $sql2 .= "OR user_reg LIKE '$regionfr%' "; $sql2 .= "OR user_fr LIKE '$from%' "; $qll2 .= "OR user_planete LIKE '$planete%' "; $sql2 .= ") ORDER BY RAND() LIMIT 0,10"; <---- la parenthèse doit se trouver sur cette ligne, sinon ça ne marche pas
C'est bizarre non ?
cycloop
Messages postés
69
Date d'inscription
mercredi 22 octobre 2008
Statut
Membre
Dernière intervention
8 avril 2013
17
14 déc. 2009 à 14:42
14 déc. 2009 à 14:42
euh je sais pas si tu as remarqué, mais dans les 2 copies de code que tu as donné, l'avant dernière ligne (celle qui bug) commence par $qll2 au lieu de $sql2.
le problème venait peut être simplement d'une faute de frappe ;)
le problème venait peut être simplement d'une faute de frappe ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Franchement je ne sais pas comment te remercier, j'avais totalement passer à côté de cette erreur de frape, ça venait bien de cette erreur de frape. Il me faut des congés, parce que pour passer à coté de ça, il faut être trop fatigué :-)
C'est donc résolu. Merci encore et bonne journée à toi :-)
C'est donc résolu. Merci encore et bonne journée à toi :-)
cycloop
Messages postés
69
Date d'inscription
mercredi 22 octobre 2008
Statut
Membre
Dernière intervention
8 avril 2013
17
14 déc. 2009 à 14:52
14 déc. 2009 à 14:52
Bonne journée à toi aussi. Ravi d'avoir pu résoudre ces petits problèmes qui pourrissent souvent beaucoup plus la vie qu'ils ne le devraient ^^