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 :
//$answer->closeCursor();
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 :
$channel_limit=$data['country_ch_lmt'];
Car la valeur de $channel_limit aura obligatoirement celle du dernier élément de $data.
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.
Partager