Dans ce billet je présente un script en PHP et SQL afin d’extraire un liste de chaîne d’une base de donnée MYSQL et retourner le tout en UTF8. J’ai eu besoin de ce script lors d’un développement afin de régler un problème d’accent qui était interprété sous la forme d’un point d’interrogation lorsque je faisais mon affichage en php.
Pour débuter assurez vous d’avoir une table SQL au bon format d’encodage
Avec comme la configuration suivante de votre table SQL :
Cette fonction permet de se connecter a la base SQL, on passe en argument la requête SQL ainsi que le nom de la base de donnée sur laquelle travailler. Pensez à adapter vos identifiants.
$base = mysql_connect ('127.0.0.1', 'root', 'mdproot');
mysql_select_db ($db, $base) ;
$query_me = mysql_query($query) or die ('<p class="error">La requête [ '. $query .' ] présente une/des erreur()s '.mysql_error().'</p><BR />');
mysql_close();
Return $query_me;
}
Cette fonction permet de retourner la liste des des chaines retournées via la requêtes SQL, à adapter selon votre BDD
$query = "SELECT * FROM `wp-categories`";
mysql_query("SET NAMES 'utf8'");
$connection_mysql = connection_mysql('wordpress', $query);
Return $connection_mysql;
}
On appel la fonction afin de retourner les catégories puis on la liste via un mysql fetch array qui retourne un tableau avec les résultats.
while ($data = mysql_fetch_array($categories)) {
echo '<option value="'.utf8_encode($data['nom_categories']).'">'.utf8_encode($data['nom_categories']).'</option> ';
}