Différence de comptage entre local et serveur

Résolu/Fermé
isa-- Messages postés 77 Date d'inscription lundi 16 septembre 2013 Statut Membre Dernière intervention 11 mars 2020 - Modifié le 30 nov. 2017 à 17:42
isa-- Messages postés 77 Date d'inscription lundi 16 septembre 2013 Statut Membre Dernière intervention 11 mars 2020 - 30 nov. 2017 à 20:31
Bonjour,

J'ai besoin d'aide, je bute sur une bricole sans doute, mais je n'avais jamais encore eu le cas :
Je veux compter les lignes pour chaque commercial ou il n'y a pas de date de clôture.

Mon script marche à merveille en local (easyphp), résultats justes, mais bizzarement, en ligne, j'obtiens à chaque ligne le nombre total de ligne.
Script identique, base de données identique.

Voici mon code :
//Pour chaque commercial
include("../connexion.php");
$req = "SELECT * FROM `personnel` where `service`='CIAUX' ORDER BY nom";
$res = $conn->query($req); 
while ($data = mysqli_fetch_array($res)) {
echo $cial=$data['nom'];
echo " : ";
// 2eme requete
include("../connexion2.php");
$req2 = "SELECT * FROM `retours` where `cial`='$cial' and `cloture`= '0000-00-00' or `cloture`= '' ORDER BY id ";
$res2 = $conn2->query($req2); 
echo $nb=mysqli_num_rows($res2);
echo " retours ou litiges non clotures<br>";
while ($data2 = mysqli_fetch_array($res2)) {
$client=$data2['client'];
}
$nb=0;
// fin de pour chaque commercial
}


Voilà ce que j'obtiens en local (résultat juste) :
GUEROULT : 42 retours ou litiges non clotures
HALOT : 39 retours ou litiges non clotures
LAURE : 14 retours ou litiges non clotures
PAGEAUD : 16 retours ou litiges non clotures
PUAUT : 38 retours ou litiges non clotures
VANNIER : 15 retours ou litiges non clotures
VERDENAL : 55 retours ou litiges non clotures

et ceci en ligne :
GUEROULT : 212 retours ou litiges non clotures
HALOT : 212 retours ou litiges non clotures
LAURE : 212 retours ou litiges non clotures
PAGEAUD : 212 retours ou litiges non clotures
PUAUT : 212 retours ou litiges non clotures
VANNIER : 212 retours ou litiges non clotures
VERDENAL : 212 retours ou litiges non clotures

J'ai beau me creuser le citron, je ne comprends pas pourquoi...
Quelqu'un aurait une idée ?
Merci d'avance

Isa

EDIT : Ajout du LANGAGE dans les balises de code pour avoir la coloration syntaxique ! Explications disponibles ici :https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

1 réponse

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
30 nov. 2017 à 17:43
Bonjour,

Et que donne ta requête directement testée sur ta bdd ?
SELECT * FROM `retours` where `cial`='$cial' and `cloture`= '0000-00-00' or `cloture`= '' ORDER BY id 

As tu les mêmes résultats que ceux affichés par ton script php ??

0
isa-- Messages postés 77 Date d'inscription lundi 16 septembre 2013 Statut Membre Dernière intervention 11 mars 2020 1
30 nov. 2017 à 20:31
C'est en effet elle qui bricole. Bien vu.
Si je fais
SELECT * FROM `retours` where `cial`='$cial' and `cloture`= '0000-00-00' 

Ca fonctionne parfaitement. C'est donc mon OU qui ne marche pas.
Je peux m'en passer car en fait je n'ai pas de champ vide.
Je ne sais pas pour quoi ce OU fait foirer toute la requête, et seulement en production, pas en développement.
Le serveur doit être un peu plus strict au niveau des requêtes bancales.
Je mets la question résolue car je n'ai pas trop le temps de chercher plus loin, même si ça n'est pas satisfaisant intellectuellement...
0