jlweb Posted November 8, 2016 Share Posted November 8, 2016 Bonjour, Dans un module, j'essaie de récupérer le nom du pays d'une adresse d'un utilisateur. J'arrive à récupérer l'id du pays, mais je souhaite récupérer le nom du pays correspondant à cet id. La fonction de la classe de mon module : public static function getAll() { $results = (Db::getInstance()->executeS(' SELECT pc.`id_product_comment`, pc.`id_product`, IF(c.id_customer, CONCAT(c.`firstname`, \' \', c.`lastname`), pc.customer_name) customer_name, pc.`content`, pc.`grade`, pc.`date_add`, pl.`name`, c.id_customer FROM `'._DB_PREFIX_.'product_comment` pc LEFT JOIN `'._DB_PREFIX_.'customer` c ON (c.`id_customer` = pc.`id_customer`) LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (pl.`id_product` = pc.`id_product` AND pl.`id_lang` = '.(int)Context::getContext()->language->id.Shop::addSqlRestrictionOnLang('pl').') WHERE pc.validate = 1 ORDER BY pc.`date_add` DESC LIMIT 50')); foreach($results as $k=>$item){ if((int)$item['id_customer']){ $adresse = new Address(Address::getFirstCustomerAddressId((int)$item['id_customer'], true), (int)$cookie->id_lang); $results[$k]['city'] = $adresse->city; $results[$k]['postcode'] = $adresse->postcode; $results[$k]['id_country'] = $adresse->id_country; $country = new Country(Country::getNameById((int)$cookie->id_lang, $item['id_country']), (int)$cookie->id_lang); $results[$k]['countryname'] = $country->name; } } return $results; } Je veux ensuite afficher le nom du pays dans mon fichier TPL : {$comment.countryname} {if $comments} {foreach from=$comments item=comment} {if $comment.content} <div class="comment clearfix"> <div class="client"> {assign var=name value=" "|explode:$comment.customer_name} {$name[0]} {$name[1]|substr:0:1} ... <span class="country">{$comment.countryname}</span> </div> <div class="comment_details"> <p>{$comment.content|escape:'html':'UTF-8'|nl2br}</p> </div> </div> {/if} {/foreach} {else} //DIVERS {/if} Cela ne fonctionne pas. Avez-vous une piste ? Merci d'avance Link to comment Share on other sites More sharing options...
jlweb Posted November 10, 2016 Author Share Posted November 10, 2016 Personne pour filer un petit coup de main ? :-( Link to comment Share on other sites More sharing options...
Mediacom87 Posted November 11, 2016 Share Posted November 11, 2016 Bonjour, il faut corriger cela $country = new Country(Country::getNameById((int)$cookie->id_lang, $item['id_country']), (int)$cookie->id_lang); soit vous faites un new Country avec l'id du dit pays, soit vous récupérez le nom avec la méthode Country::getNameById en statique, mais ne faites pas les 2 en même temps, cela plantera obligatoirement. Link to comment Share on other sites More sharing options...
jlweb Posted November 23, 2016 Author Share Posted November 23, 2016 Merci pour votre retour. Je viens d'essayer en tenant compte de vos indications mais ça ne fonctionne pas. J'ai remplacé $country = new Country(Country::getNameById((int)$cookie->id_lang, $item['id_country']), (int)$cookie->id_lang); par $country = new Country($item['id_country'], (int)$cookie->id_lang); => sans succès. Puis j'ai remplacé par $country = Country::getNameById((int)$cookie->id_lang, $item['id_country']); => sans succès également. Je ne vois vraiment pas comment faire. Link to comment Share on other sites More sharing options...
BeComWeb Posted November 23, 2016 Share Posted November 23, 2016 Essayez plutôt avec quelque chose comme $results[$k]['countryname'] = Country::getNameById((int)$cokkie->id_lang, (int)$adresse->id_country); Sauf erreur avec cette seule ligne ça devrait suffire Link to comment Share on other sites More sharing options...
jlweb Posted November 24, 2016 Author Share Posted November 24, 2016 Merci, mais malheuresuement, rien ne s'affiche :-/ Link to comment Share on other sites More sharing options...
BeComWeb Posted November 24, 2016 Share Posted November 24, 2016 Merci, mais malheuresuement, rien ne s'affiche :-/ Rien ne s'affiche ou tout s'affiche sauf le nom du pays ? Link to comment Share on other sites More sharing options...
BeComWeb Posted November 24, 2016 Share Posted November 24, 2016 Je viens de voir que j'avais une petite coquille dans mon code, j'ai écrit "cokkie" au lieu de "cookie" Link to comment Share on other sites More sharing options...
jlweb Posted November 24, 2016 Author Share Posted November 24, 2016 Je viens de voir que j'avais une petite coquille dans mon code, j'ai écrit "cokkie" au lieu de "cookie" Oui oui j'avais corrigé même après correction ça ne fonctionne pas :/ Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now