Comme tout le monde a pu le voir, ce n'est guère évident de trouver le temps pour rédiger des news mais..
Ca y'est, l'année 2011 a commencé, l'occasion rêvée pour faire un 1er bilan après plus de 3 années intensives consacrées au développement Web au côté de SillySmart et dorénavant de Wandi.
La 1ère année de Wandi a été très riche avec la réalisation de plus d'une trentaine de sites.
Un grand merci à tous ceux qui nous font confiance et qui permettent de faire progresser l'aventure Wandi et SillySmart chaque jour.
Sans oublier tous ceux qui nous accompagnent au quotidien : les Wandiz, Charly, Jerem, Mickey, Chatton, les Nsn guys et tous les autres..
Bonne année à tous !
Si jamais un de vos dump sql à été mal encodé et que vous souhaitez convertir une colonne mysql d'iso à utf-8, voici une petite table de conversion de caractères courants :
UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'’','‘'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'°','°'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'à','à '); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'á','á'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'â','â'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'ã','ã'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'ä','ä'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'å','Ã¥'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'æ','æ'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'ç','ç'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'è','è'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'é','é'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'ê','ê'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'ë','ë'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'ì','ì'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'í','Ã' ); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'î','î'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'ï','ï'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'ð','ð'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'ñ','ñ'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'ò','ò'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'ó','ó'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'ô','ô'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'õ','õ'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'ö','ö'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'ù','ù'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'ú','ú'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'û','û'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'ü','ü'); UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'ý','ý');
Si vous avez essayé mainte fois de produire un export excel de données issues d'une base en UTF-8 par PHP, vous êtes sans doute arrivés à des résultats surprenants.
Notre cher ami Microsoft utilise en fait l'encodage UTF-16le.
Ainsi, pour former un document excel (ici une liste d'utilisateurs), il vous "suffit" de faire :
<?php header("Content-Type: application/vnd.ms-excel; charset=UTF-16LE"); header("Content-Disposition: attachment; filename=\"Export Excel\""); mysql_connect("localhost","root",""); mysql_select_db("fake"); $sql = "SELECT * FROM users ORDER BY user_name"; $req = mysql_query($sql); ?> <html><head></head><body> <table> <tr> <td>Nom</td> <td>Prénom</td> <td>Email</td> </tr> <? while ($row = @mysql_fetch_assoc($req)) { ?> <tr> <td><?=substr(chr(255).chr(254).mb_convert_encoding($row['user_sname'], "UTF-16LE", "UTF-8"),2)?></td> <td><?=substr(chr(255).chr(254).mb_convert_encoding($row['user_fname'], "UTF-16LE", "UTF-8"),2)?></td> <td><?=substr(chr(255).chr(254).mb_convert_encoding($row['user_email'], "UTF-16LE", "UTF-8"),2)?></td> </tr> <? } ?> </table> </body></html>
Si vous souhaitez en MySQL (ou en PHP) récupérer les commentaires de tables et/ou les commentaires des colonnes d'une table, sachez qu'il est très facile d'accéder à ces informations directement à partir d'une requête.
Récupérer les commentaires d'une table :
# 'sillysmart' est le nom de la base de données dont vous voulez extraire des informations mysql> SHOW TABLE STATUS FROM sillysmart mysql>
produira les informations suivantes:
Name | Engine | Version | Rows | Comment |
---|---|---|---|---|
Country | MyISAM | 10 | 240 | Countries Listing |
News | MyISAM | 10 | 30 | News Listing |
où la colonne 'Comment' vous donnera l'information voulue, à savoir le commentaire de la table. Sachez que beaucoup d'autres informations sont accessibles grâce à cette requête.
Récupérer les commentaires des colonnes d'une table :
# 'Country' est le nom de la table voulue mysql> SHOW FULL COLUMNS FROM Country mysql>
produira les informations suivantes:
Field | Type | Collation | Null | Key | Extra | Privileges | Comment |
---|---|---|---|---|---|---|---|
country_id | bigint(20) | NULL | NO | PRI | auto_increment | select,insert,update | Id |
country_name | varchar(255) | latin1_swedish_ci | NO | UNI | select,insert,update | Country Name | |
country_tld | varchar(2) | latin1_swedish_ci | YES | select,insert,update | Country TLD |
où la colonne 'Comment' vous donnera l'information voulue, à savoir le commentaire de la colonne de la table.
Libre à vous d'exploiter ces informations en PHP. Personnellement nous utilisons ces colonnes de manière transparente sur SillySmart pour créer des back-office génériques qui reste néanmoins parlant pour un non-informaticien. La seule contrainte est que la longueur du commentaire est bridée à 60 caractères, donc soyez succinct !