06 mars 2010 ¤ Classé dans Programmation ¤ Aucun Commentaire

Comment réécrire les messages d’erreurs MySQL générés par mysql_error() en francais et avec son CSS.

Lorsque vous développez avec PHP vous utilisez très souvent une base de données et généralement une MySQL. Pour faire une requête une fonction mysql_query() existe et lorsqu’on débute on nous apprend souvent qu’il faut l’utiliser comme suit:


<?php
$res = mysql_query('SELECT something FROM sometable WHERE id=1');
if (!$res) {
echo('Requête invalide : ' . mysql_error());
}
?>

La fonction mysql_error() affichant un message pour vous aidez à comprendre l’erreur. Si c’est pratique en débuggant, cela fait mauvais genre lorsque le visiteur se retrouve un avec message d’erreur en anglais sur son écran.

Dans ce cas il suffit de ne pas afficher de message d’erreur?!

Et bien parfois ces messages d’erreurs sont utiles au fonctionnement du site. Par exemple lorsque vous voulez vérifier si un élément existe déjà dans la table afin de ne pas l’insérer deux fois (typiquement un nom d’utilisateur ou une adresse email pour l’ajout d’un compte).

Une première méthode consisterait à faire une requête pour savoir si l’élément a été trouvé dans la table et si ca n’est pas le cas on exécute la requête d’ajout. Une autre méthode (la bonne mon sens) est de spécifier à votre SGBD (MySQL en l’occurrence) que tel ou tel élément doit être unique et d’exécuter la requête d’ajout et afficher un message d’erreur si le paramètre existe déjà.

Réécrire la fonction mysql_query()

Dans votre fichier de fonction, définissez une fonction my_query() que vous utilisez à la place de celle fournie par PHP.

La méthode est assez simple, exécution de la requête puis selon le numéro d’erreur affichage d’un message personnalisé. Pour continuer sur l’exemple précédemment choisie je propose la fonction avec l’erreur généré si un élément doit être unique.

PHP fournit la fonction mysql_errno() qui renvoie un numéro d’erreur.


<?php
function my_query($req) {
$result = mysql_query($req);
if (mysql_errno() == 1062) {
echo "<p class='error'>Un des éléments existe déjà dans notre base de données</p>";
}
return $result;
}
?>

En faisant une fonction générique comme ci-dessus, vos messages doivent rester générique mais en en faisant des plus précise vous pouvez afficher le champs qui pose problème (une pour l’ajout de compte justement).

La liste des erreurs MySQL est disponible sur cette page.

Partager et abonnez-vous

18 février 2010 ¤ Classé dans Programmation ¤ Aucun Commentaire

La fonction strftime() permet d’afficher des dates au format français SANS utiliser de remplacement.

La fonction date() permet d’obtenir une date de façon très simple néanmoins il vaut mieux être américain puisque les noms des jours et des mois sont en anglais.

Pour afficher la date en français on peut utiliser une simple fonction de remplacement mais reconnaissons que c’est pas très stylé… limite looser.

PHP défini une fonction dédié aux dates localisées: strftime(). Voici un exemple simple pour afficher une date francaise:


setlocale(LC_TIME, 'fr_FR');
echo strftime("%A %d %B %Y.");

%A %d %B %Y affiche la date comme ceci jeudi 18 fevrier 2010.

setlocale() permet de définir le format à utiliser. Même si l’exemple ci-dessus devrait fonctionner la documentation recommande l’exemple suivant.


setlocale(LC_TIME, 'fr', 'fr_FR', 'fr_FR.ISO8859-1');
echo strftime("%A %d %B %Y.");

A lire:

Partager et abonnez-vous

10 juillet 2008 ¤ Classé dans Programmation ¤ Aucun Commentaire

Je me répète mais bon tant pis, je suis en train de travailler sur quelques sites web. Comme je ne fais absolument pas de javascript (pour l’instant) je me contente d’utiliser des scripts que d’autres on codé.

En voici justement un petite selection:

  1. Pré-loader une image
  2. Changer d’image à chaque chargement
  3. Affichage jusqu’à une date limite
  4. +plus


Lire la suite »

Partager et abonnez-vous

19 juin 2008 ¤ Classé dans Programmation ¤ 1 Commentaire

Si comme moi le développement de site se fait par période, rien pendant des mois et tout à faire pendant vos 2 mois estivales (faire un thème pour votre blog, faire votre « Julien Bourdeau .fr« ,…) vous avez peut etre un peu de mal à vous rappeler de tout ce que vous êtes sensé savoir: float, margin, h3, font-familly,…

Un américain qui aime le whisky (cf: nom de domaine) concocte des Cheat Sheets. Il commence d’ailleurs à maitriser puisqu’il en fait pour pas mal de langage.

Cheat Sheet CSS


Version PDF (379 KB)

Cheat Sheet HTML


Version PDF (42 KB)

D’autres Cheat Sheets

Vous pouvez allez voir toutes ses Cheat Sheet sur son blog à cette adresse:
http://www.ilovejackdaniels.com/cheat-sheets/

Je sais pas pour vous mais moi je suis bien content d’avoir trouvé ça!

Partager et abonnez-vous