Contenu | Rechercher | Menus

Annonce

L'équipe des administrateurs et modérateurs du forum vous invite à prendre connaissance des nouvelles règles.
En cas de besoin, vous pouvez intervenir dans cette discussion.

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 30/09/2018, à 10:57

minizebr95

Requête SQL qui passe seulement sur certains serveurs

Bonjour,

$reponse = $bdd->query("SELECT ville_nom_simple,$formule AS dist FROM villes_france_free WHERE $formule<= 15 && ville_population_2010 >=4000 ORDER by dist ASC LIMIT 0,10");
$numb=0;

while ($donnees = $reponse->fetch())
{
$vns = $donnees['ville_nom_simple'];
$arr1[]=$vns;

}

$reponse->closeCursor(); // Termine le traitement de la requête

Ceci passe en local sous xampp, passe sous mon vps sous centos 7, mais pas sous d'autres serveurs

Avez vous une idée de pourquoi ?


Je pose plein de questions

Hors ligne

#2 Le 30/09/2018, à 12:09

Alex10336

Re : Requête SQL qui passe seulement sur certains serveurs

le && en trop ?

$reponse = $bdd->query("SELECT ville_nom_simple,$formule AS dist FROM villes_france_free WHERE $formule<= 15 AND ville_population_2010 >=4000 ORDER by dist ASC LIMIT 0,10");

« On ne répond pas à une question par une autre question. » (moi ;-) )

Hors ligne

#3 Le 01/10/2018, à 06:29

minizebr95

Re : Requête SQL qui passe seulement sur certains serveurs

Alex10336 a écrit :

le && en trop ?

$reponse = $bdd->query("SELECT ville_nom_simple,$formule AS dist FROM villes_france_free WHERE $formule<= 15 AND ville_population_2010 >=4000 ORDER by dist ASC LIMIT 0,10");

Non ce n'est pas ça, même avec un AND c'est la même chose.

Le soucis doit être au niveau de ce code :

$formule="(6366*acos(cos(radians($latitude))*cos(radians(`ville_latitude_deg`))*cos(radians(`ville_longitude_deg`) -radians($longitude))+sin(radians($latitude))*sin(radians(`ville_latitude_deg`))))";

Enfin, j'ai l'impression que ceci doit passer sur certains serveurs mais pas tous. Mais je n'ai aucune idée du pourquoi du comment... si encore il était sûr que ce soit bien ça le problème. Mais je ne vois rien d'autre.


Je pose plein de questions

Hors ligne

#4 Le 01/10/2018, à 17:45

krodelabestiole

Re : Requête SQL qui passe seulement sur certains serveurs

tu as un message d'erreur ?

tu as essayé d'entrer directement ta requête dans la console MySQL ?

Hors ligne

#5 Le 02/10/2018, à 12:36

jlmas

Re : Requête SQL qui passe seulement sur certains serveurs

Réponse possible

Parce que tu tu n’utilises pas les mêmes versions de Mysql ou MariaDB et que la syntaxe que tu utilises n'est pas compatible avec toutes ces versions.

Pour connaitre la version utilisée

# mysql -V

Hors ligne

#6 Le 02/10/2018, à 17:25

bruno

Re : Requête SQL qui passe seulement sur certains serveurs

Si tu actives les retours d'erreur ou si tu regardes les logs tu sauras exactement pourquoi « ça ne passe pas ».

Hors ligne

#7 Le 04/10/2018, à 08:38

minizebr95

Re : Requête SQL qui passe seulement sur certains serveurs

Merci pour vos réponses.

Je vais faire les essais. Sur un autre forum quelqu'un m'a dit qu'il suffisait d'utiliser des "requêtes préparées" et que ça suffirait à résoudre le problème.

Je vais essayer tout ça, et je vous dirai ce qu'il en est.


Je pose plein de questions

Hors ligne