Une fonction perso pour aléger le code...
Bonsoir tout le monde,
Je me suis apperçu en reproduisant fréquemment des lignes de codes identiques (souvent à l'aide de Ctrl+C, Ctrl+V :wink:) pour traiter des requêtes en notamment combien cela pouvait être répétitif et surtout lourd :x Sans compter que ça complique drôlement la source de mes pages 8O
Du coup, j'ai pensé :idea: à utiliser une fonction qui, lorsqu'on l'appele, pourrait se charger de répéter un code assez classique. La voici :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <?php
function function_mysql($query)
{
$mysql_user='root';
$mysql_pass='';
$mysql_address='192.168.1.51';
$mysql_database='lisa';
@mysql_connect($mysql_address,$mysql_user,$mysql_pass) or die('<h1 class="error">Impossible de se connecter à la base MySQL</h1>');
@mysql_select_db($mysql_database) or die('<h1>Erreur lors de la sélection de la base de donnée <code>'.$mysql_database.'</code></h1>');
$result=mysql_query($query) or die('<h1 class="error">Erreur My<abbr title="Structured Query Language" lang="en">SQL</abbr></h1><ul><li>Requête invalide : '.mysql_error().'</li><li>Requête complète : '.$query.'</li></ul>');
$nb=mysql_num_rows($result);
mysql_close();
return($result);
}
?> |
Cependant, il reste encore à ajouter ceci (par exemple) pour l'appeler et faire fonctionner l'ensemble :
Code:
1 2 3 4 5 6 7
| <?php
$query='SELECT `nom_forum` FROM `forum` WHERE `numero_forum`=1';
while($row=mysql_fetch_array(function_mysql($query);))
{
echo $row['nom_forum'];
}
?> |
Vous l'avez remarqué, ça n'est pas encore l'idéal :roll:
A vrai dire, je n'ai pas réussi à structurer la fonction function_mysql(); de telle facon à ce qu'il ne reste plus qu'à récupérer les résultats via par exemple :
Code:
1 2 3 4
| <?php
$tableau[]=function_mysql('SELECT `nom_forum` FROM `forum` WHERE `numero_forum`=1');
echo $tableau['nom_forum'][0];
?> |
...Où [0] indiquerais la 1ère (et en l'occurrence unique) ligne retournée. Car en effet, il me semble que pour y arriver, une solution pourrait être de faire retourner un tableau par la fonction dont la structure ressemblerait à ça : $tableau['nom_d_un_champ']['numero_de_la_ligne'] pour qu'ainsi, il soit possible de savoir combien de lignes ont été retournées (car c'est parfois important à savoir), en tenant compte du fait que l'on ne puisse pas faire retourner deux valeurs via une fonction.
De cette manière on évite de constamment rappeler while($row=mysql_fetch_array[...] outre l'appele à la fonction. Mais même si cela était fait, je ne vois pas bien comment en déduire que ['numero_de_la_ligne'] est égal à 8 par exemple.
Bon, j'espère que mon sujet est clair et qu'il ne noiera personne de questions :)
En vous souhaitant une bonne soirée :P