Software is like sex... It's better when it's free.

Blog - Tag 'mysql'

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.

3 ans de développement Web

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 !

Tags:  ajaxjsonmysqlphpsillysmartwandixmlxpathxsl.
Posté le Lundi 03 janvier 2011 15:56:16 - 0 commentaire

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`,'ý','ý');
Tags:  charsetmysql.
Posté le Mercredi 29 avril 2009 23:04:48 - 0 commentaire

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>
Tags:  charsetmicrosoftmysqlphp.
Posté le Mardi 28 avril 2009 18:23:05 - 0 commentaire

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 !

Tags:  mysqlphp.
Posté le Lundi 08 juin 2009 15:45:08 - 1 commentaire