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 !