|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 15 ![]() |
Bonjour, j'ai un souci sur cette requete, elle fonctionne correctement sur mon serveur de dev mais ne retourne aucune info sur le serveur de production :
Code :
Quelqu'un aurait une idée ? |
||
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Adeline Consultant informatique Inscription : décembre 2011 Messages : 20 ![]() |
T'as essayé d'afficher ta seconde requête et de l’exécuter directement dans le phpMyAdmin?
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 15 ![]() |
Oui, j'ai bien le résultat désiré en passant par phpmyadmin.
Je me demande si ce n'est pas du à ma méthode pour passer les résultat sous forme de tableau |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Adeline Consultant informatique Inscription : décembre 2011 Messages : 20 ![]() |
et si tu lui demandes d'afficher $data['channel_nbr'] ou $data['channel_fq'] dans la boucle il le fait?
|
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 15 ![]() |
Non, rien ne s'execute dans cette boucle
Cependant, j'ai déplacé la 2e requete dans une autre fonction et ca passe ! Code :
|
||
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 728 ![]() |
Salut
Active la gestion des erreurs de Php (display_errors à ON) si ce n'est pas le cas, car s'il y a une erreur de Php, tu auras au moins un message, donc une piste. Essai de mettre ceci en commentaire : Juste après la 1ère requête, voire même les 2. Théoriquement MySQL n'a pas besoin qu'on lui dise de fermer la connexion, c'est gérer automatiquement, en plus ce serait plus rapide. Il y a des petits trucs qui à mon sens peuvent s'améliorer dans ton code. Tu fais une boucle sur la 1ère requête, or, si chaque country_name est unique (ce qui me semble le cas), alors on peu avoir 2 cas possible : -> Soit aucun résultat, car la valeur de $country ne correspondrait à aucun country_name -> Soit 1 seul résultat (mais jamais plus d'1 résultat). Dans ces conditions faire une boucle ne sert à rien. En admettant maintenant que dans cette table country il peu avoir plusieurs valeurs identiques de country_name (peu probable à mon sens), alors faire une boucle devient nécessaire, mais cette ligne comporte alors une erreur : Code :
$channel_limit=$data['country_ch_lmt']; La valeur de $channel_limit serait en faite "écrasée" à chaque tour de boucle. Donc dans tous les cas il y a une correction à faire sur cette 1ère requête. Je poursuis. Si chaque ligne/valeur de country_name est unique (ce qui me semble le cas là encore), alors tu devrais pouvoir faire tout ça en une seule requête SQL, suffit de faire une jointure entre ces 2 tables "country" et "channel", et par relation de "country_ch_lmt" et channel_nbr. Tout ça sauf erreur bien sûr.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 15 ![]() |
Pour répondre à ta question, dans la table COUNTRY, coutry_name est bien unique.
J'ai fait selon ton idée, j'ai nettoyé un peu tout ça et effectué une jointure de table comme ceci : Code :
|
||
|
|
00
|
|
|
#8 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 728 ![]() |
Citation:
Attention au piège cependant. Si on revient au tout début, apparemment, lorsque que tu faisait la 1ère requête, tu n'avais pas d'erreur, mais pour la deuxième, tu n'obtenais rien (c'était ça le problème). Finalement, on a pas la certitude que c'était la ligne du closeCursor qui provoquais cette erreur. Il y a alors une sorte d'inconnue finalement. Pour ma part, je tenterais, ne serait-ce que provisoirement de refaire exactement la même chose qu'auparavant, soit les 2 requêtes. - Une fois avec le closeCursor, là tu devrais obtenir la même erreur. - Une 2ème fois sans closeCursor. Et là, 2 cas possibles : -> soit tu n'auras plus cette erreur (en vérifier que la 2ème requête renvoie bien quelque chose). On peu conclure que c'est le closeCursor qui est à l'origine de l'erreur. Tant mieux. -> soit l'erreur est toujours présente. Le closeCursor n'est pas l'origine de cette erreur (le piège en question). Il faudrait alors prospecter un peu plus. Activer la gestion des erreurs Php pourrait aider à mieux comprendre. Vois tu où je veux en venir ?
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com