L'art de la procédure complexe qui ne sert à rien

L'art de la procédure complexe qui ne sert à rien (le 19 juillet 2006)

On peut vraiment devenir être un peu con des fois en codant, je faisais mumuse en PHP en trifouillant un peu de logique objet pour gérer une base de données, et je me fis la remarque que ça serait bien de faire une super-procédure qui exécute une requête SQL et qui balance tous les résultats dans diverses variables, le tout dans l'optique de gagner du temps.

En résulte la bêbête suivante (c'est un délire) :

// prend $sql comme paramètre et shoote dans $error, $taille_tablo et $tablo les résultats 
//(erreur SQL si problème d'exécution, nombre d'enregistrements trouvés et tableau des résultats)
function execute_query($sql,&$error,&$taille_tablo,&$tablo){
   $result=mysql_query($sql);
   if (!$result){
      $error=mysql_error();
      }
      else {
            $error="";
            $taille_tablo = mysql_num_rows ($result);
            if ($taille_tablo != 0){ // si y a qqch
               $k=0;
               while ( $tab=mysql_fetch_array($result) ){
                    $tablo[$k]=$tab;
                    $k++;
                   }
               }//finsi y a qqch
          }
}
/**
$query="SELECT nom_du_champ_desire, etc... FROM table";
execute_query($query,$erreur,$nb_articles,$tab);
for ($i=0;$i<$nb_articles;$i++){
echo "titre : ".$tab[$i]['nom_du_champ_desire']. "<br />";
// etc...
}**/

Tout fier de ma bêtise, je me dis que j'ai enfin fait une super-procédure qui va me faire gagner du temps. Je décide de la tester pour lister une base...
et je m'aperçois que le boulot est fait à double : pour afficher les données dans la page, il faut nécessairement que je teste si la requête n'a pas échoué, si le nombre des articles est non nul, et que je reliste... en me faisant juste un peu plus ch... à gérer un indice, alors qu'un listage avec les fonctions de base est plus simple.

Bref je me dis au final que j'ai juste un peu surchargé la mule.

Seul avantage (encore à voir) : si je dois migrer la base de données sur un autre type de serveur (PostGres par exemple), j'ai une seule fonction à changer et en théorie, ça roule (mais c'est pas vraiment ce que je cherchais en faisant ça).

EDIT : à priori, Bastien me dit que ce n'est pas si inutile que ça. A perfectionner !


Aucun commentaire pour le moment.

Ajouter un commentaire









L'option « Se souvenir de mes informations » utilise un cookie, elle ne sera pas effective si vous les avez désactivés.

Les balises HTML ne seront pas interprétées, il est donc inutile d'en mettre. Par contre, les sauts de lignes de votre commentaire seront pris en compte, ne mettez donc pas de <br />, le site s'en chargera. Bien sûr, un commentaire vide ne sera pas ajouté !

L'auteur (autrement dit moi) n'est pas responsable des éventuelles fautes d'orthographe dans les commentaires.
Tout propos raciste et/ou insultant sera supprimé sans préavis. Les commentaires hors de propos destinés à faire de la pub pour des sites seront également supprimés sans ménagement.

Je vous prie de me pardonner, j'ai énormément de mal à lire le "langage" SMS, il n'est donc pas du tout interdit de s'abstenir de l'utiliser. Qui plus est, vous avez sûrement un clavier digne de ce nom et pas celui d'un téléphone portable. Ne vous gênez pas pour utiliser l'option "Prévisualiser" si vous voulez vous relire avant de poster, je vous en remercie d'avance !

Cet article a été écrit par Nicolas Hoffmann.

Ce site est la propriété de Nicolas Hoffmann.
Tous droits réservés, les textes du blog sont publiés sous licence CC BY-NC-SA.