Hello, I’m Vinch

And this is my website.

La recursivité, c’est utile !

10/11/09

This post is more than 8 years old. It might not reflect my current skills and convictions.

Dans un article récent, j’ai choqué pas mal de monde en disant que la récursivité est un concept assez peu utilisé. Je me focalisais sur mon expérience personnelle récente. Il est vrai que ces derniers mois, je n’ai pas eu besoin d’utiliser de fonctions récursives, sans doute car les projets sur lesquels j’ai travaillé ne s’y prêtaient pas.

A vrai dire, la question m’a un peu hanté alors j’ai décidé de faire des recherches et j’ai finalement retrouvé un vieux site où j’avais du utiliser la récursivité pour arriver à mes fins.

Il s’agit d’un problème tout bête sur lequel vous êtes déjà certainement tombé : j’avais un simple système de catégorisation au nombre de sous-niveaux arbitraires (donc, potentiellement infini) et je voulais afficher un sitemap tout ce qu’il y a de plus classique via des listes et sous-listes (tags ul et li).

Ma table category ressemblait à ceci :

+-----------+
| category  |
+-----------+
| id        |
| name      |
| parent_id |
+-----------+
  • id est l’identifiant unique de la catégorie
  • name est le nom de la catégorie
  • parent_id est l’id de la catégorie parente (0 si c’est une catégorie qui se trouve à la racine)

L’algorithme pour afficher mon sitemap est on ne peut plus simple. Je vous épargne volontairement les lignes de code concernant la connexion à la base de données…

<?php

function displaySitemap($n) {
	$query = mysql_query("SELECT * FROM category WHERE parent_id = '$n' ORDER BY name");
	if (mysql_num_rows($query)) {
		echo '<ul>';
		while ($category = mysql_fetch_assoc($query)) {
			echo '<li><a href="category.php?id='.$category['id'].'">'.$category['name'].'</a>';
			displaySitemap($category['id']);
			echo '</li>';
		}
		echo '</ul>';
	}
}

displaySitemap(0);

Ce n’est absolument pas la façon la plus propre de procéder mais cela prouve que la récursivité est une notion indispensable et utile !

Mea culpa, donc.

Prenez part au challenge Cherry et remportez un Nokia E75 !

10/05/09

This post is more than 8 years old. It might not reflect my current skills and convictions.

Depuis aujourd’hui et jusqu’au 2 novembre, Cherry vous offre la possibilité de remporter un splendide Nokia E75 flambant neuf avant trois ans d’abonnement gratuit à la formule illimitée à 42€ de Cherry.

Le deuxième prix est un Nokia E66 avec un an d’abonnement. Une troisième personne tirée au sort parmi tous les participants remportera également un Nokia E66 + l’abonnement d’un an.

Cherry Challenge

Pour remporter ces magnifiques cadeaux, rien de plus simple : il suffit de vous rendre sur la page http://www.becherry.be/en/challenge, de vous inscrire et de partager le plus possible votre URL personnelle. Chaque click équivaut à un point mais si vous voulez augmenter vos chances de gagner, utilisez la technique suivante : en venant de votre URL personnelle (par exemple : http://chry.be/1), cliquez sur « subcribe now » en haut à droite de la page et ensuite sur « proceed right now » au milieu à gauche de la page. Vous marquerez 10 points d’un seul coup !

Bonne chance !