Astuce PHP : afficher ou masquer le "s" de résultat(s) en une ligne
Par Damien Ravé - Le Caphar, dimanche 21 janvier 2007 à 15:45 :: Développement PHP :: #61 :: rss
J'ai longtemps cherché un moyen simple et efficace de déterminer si le nombre de résultats d'un moteur de recherche prenait un S. Et je crois avoir trouvé la méthode la plus condensée : elle tient en une ligne de code.
Concrètement, on veut afficher un "s" uniquement si le nombre de résultats est supérieur ou égal à 2, ou, tout simplement, supérieur à 1. Si l'on obtient 0 ou 1 résultat, le "s" est superflu. La première étape consiste à déterminer la valeur à prendre en compte. Si c'est un résultat de base de données, je pourrai utiliser mysql_num_rows(). Si j'ai passé les résultats dans un tableau associatif (par ex. via ma fonction mysql_tableau), je peux utiliser count($mon_tableau). J'affecte cette valeur à une variable $nb_resultats. Une première ébauche de mon script donnera donc ça :
Il y a <?php
print $nb_resultats;
?> résultat<?php
if ($nb_resultats > 1)
{
print "s";
}
?>
C'est assez simple, mais dans une longue page de code, ça rajoute de la complexité. On pourrait aussi la mettre sur une ligne, mais je ne trouve pas ça très élégant :
Il y a <?php print $nb_resultats; ?> résultat<?phpif ($nb_resultats > 1) { print "s"; } ?>
C'est là qu'entre en scène la syntaxe raccourcie des conditions : print ($a == true) ? 'a est vrai' : 'a n'est pas vrai';. C'est l'équivalent d'une fonction if/else. La condition est évaluée à la volée (ici à l'intérieur de la commande print), et renvoie donc la première valeur si la condition est vraie, et la seconde si elle n'est pas vraie. Notre code devient donc :
Il y a <?php print $nb_resultats; ?> résultat<?php print ($nb_resultats > 1) ? "s" : ""; ?>
On s'approche d'un résultat visuellement sympathique, mais il y a un détail qui continue de me chagriner : la commande print. A force de mélanger le HTML et le PHP, on se retrouve avec des print à tout bout de champ, qui nuisent à la lisibilité du code. Qu'à cela ne tienne : il existe aussi une syntaxe raccourcie. <?= remplace exactement la syntaxe <?php print. On arrive donc à une syntaxe finale de ce type :
Il y a <?= $nb_resultats; ?> résultat<?= ($nb_resultats > 1) ? "s" : ""; ?>
Depuis que j'utilise cette syntaxe, je perds moins de temps à naviguer dans mes scripts, ma productivité a augmenté de 27%, mon salaire de 40% et j'ai 10/10 à chaque oeil. Etonnant, non ?
A lire sur le même thème
- 10 fonctions PHP-MySQL que j'utilise tous les jours
- Tutoriel PHP : pourquoi passer au développement orienté objet ?
- Antispam pour les commentaires de blog : un Captcha sans images
- 7 pratiques Javascript qui changent la vie
- Tutorial MySQL : alléger des requêtes successives avec CREATE TEMPORARY TABLE
Commentaires
1. Le jeudi 24 mai 2007 à 21:22, par fgland- Astuce PHP : afficher ou masquer le "s" de résultat(s) en une ligne
fgland a posté 1 commentaire dans les articles suivants :
2. Le mercredi 30 mai 2007 à 13:25, par Le Caphar- Le retour des tables via CSS (la guerre est finie)
- Jeu en ligne Terato : des nouveautés à la pelle
- Antisociaux : les 10 pires profils pour les réseaux sociaux
- Développeurs : à quel âge serez-vous trop vieux ?
- Comment perdre vos clients grâce à un nouveau design : la parabole de la ligne 13
- Et toi tu fais quoi dans la vie ? (entretien avec un webdesigner)
- Yahoo UI vs JQuery : quel framework Javascript pour vos applications Web 2.0 ?
- Vous voulez survivre ? Soyez un filtre.
- Comment référencer un site professionnel sur Google : oubliez les meta tags
- Quel est votre manque-à-bloguer ? (encore une chaîne de blogs !)
- Tutoriel : créez une FAQ accessible et facile à mettre à jour avec JQuery
- Tutoriel PHP : pourquoi passer au développement orienté objet ?
- Stats du blog en juin : 11000 visiteurs, 36000 pages vues, et... 11,19 dollars de recettes publicitaires
- 10 choses que les femmes attendent des hommes d'aujourd'hui
- Nouveau design enrichi : le Potlatch prend le large
- Le marketing est un humanisme
- Dix ans après, le Web sert toujours à se regarder le nombril
- Antispam pour les commentaires de blog : un Captcha sans images
- 10 fonctions PHP-MySQL que j'utilise tous les jours
- Des tableaux de données simples, standards et lisibles en CSS et PHP
- Planète Djemma el'Fna
- Tendances Web 2007 : 60 palettes de couleur élégantes pour vos sites Web
- Développeurs Web : c'est le moment de demander une augmentation
- Vos utilisateurs buggent ? Quelques pièges à éviter dans vos applications en ligne
- Quelle est la meilleure architecture pour votre site Web ?
- 7 pratiques Javascript qui changent la vie
- Planète Bosphore
- Astuce PHP : afficher ou masquer le "s" de résultat(s) en une ligne
- Sarkozy ou le retour de la peine de mort dans l'oeuf
- Nouvelle affiche de campagne de Nicolas Sarkozy
- Tutorial PHP : chronométrer le temps de calcul des requêtes SQL (benchmark)
- Démago ou l'urgence médiatique
- 10 fonctions PHP-MySQL que j'utilise tous les jours
- Pour la triche à l'école (anglais)
- 10 fonctions PHP-MySQL que j'utilise tous les jours
- Je veux être une star underground - 1. l'artiste est un grand malade
- Je veux être une star underground - 1. l'artiste est un grand malade
- Ceux qui ne veulent pas de Sarkozy comme président
Le Caphar a posté 38 commentaires dans les articles suivants :
3. Le lundi 25 février 2008 à 15:05, par guillaume- Astuce PHP : afficher ou masquer le "s" de résultat(s) en une ligne
guillaume a posté 1 commentaire dans les articles suivants :
4. Le mercredi 2 avril 2008 à 01:51, par zzzombie- Astuce PHP : afficher ou masquer le "s" de résultat(s) en une ligne
zzzombie a posté 1 commentaire dans les articles suivants :
5. Le dimanche 5 octobre 2008 à 12:16, par biqcim- Astuce PHP : afficher ou masquer le "s" de résultat(s) en une ligne
biqcim a posté 1 commentaire dans les articles suivants :
6. Le mercredi 8 octobre 2008 à 06:55, par ufpefx- Astuce PHP : afficher ou masquer le "s" de résultat(s) en une ligne
ufpefx a posté 1 commentaire dans les articles suivants :
7. Le lundi 17 novembre 2008 à 15:27, par okisfumxejl- Astuce PHP : afficher ou masquer le "s" de résultat(s) en une ligne
okisfumxejl a posté 1 commentaire dans les articles suivants :
8. Le mardi 6 janvier 2009 à 00:01, par erotik- Astuce PHP : afficher ou masquer le "s" de résultat(s) en une ligne
erotik a posté 1 commentaire dans les articles suivants :
Ajouter un commentaire