Différence de comptage entre local et serveur [Résolu]

isa-- 59 Messages postés lundi 16 septembre 2013Date d'inscription 30 novembre 2017 Dernière intervention - 30 nov. 2017 à 17:00 - Dernière réponse : isa-- 59 Messages postés lundi 16 septembre 2013Date d'inscription 30 novembre 2017 Dernière intervention
- 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 :http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Afficher la suite 
59Messages postés lundi 16 septembre 2013Date d'inscription 30 novembre 2017 Dernière intervention

2 réponses

Répondre au sujet
jordane45 19213 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention - 30 nov. 2017 à 17:43
0
Utile
1
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 ??

isa-- 59 Messages postés lundi 16 septembre 2013Date d'inscription 30 novembre 2017 Dernière intervention - 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...
Commenter la réponse de jordane45