par
Ryle » 12 janv. 2007, 13:40
Alors tout d'abord, dans la déclaration de ta fonction, il faut en fait lister les arguments qu'elle peut recevoir en les séparant par des virgules. Ce pourrait être la date du jour, la date de livraison ou autre, mais dans ton cas ces paramètres sont détérminés par ta fonction, donc inutile de lui passer des paramètres.
Les données rammenées par le select ne semblant pas être utilisé, autant le virer (ou du moins le sortir de la fonction, quitte à l'exploiter ailleurs)
Je te propose par contre de décomposer en plusieurs fonctions ayant chacun un rôle. La fonction de suppression pourrait ainsi prendre en paramètre une date (qui pourrait ne pas être celle du jour, ouvrant ainsi l'usage possible, sans t'empêcher de passer le paramètre qui va bien) :
/**
* Supprime les données antérieures à la date passée en paramètre et retourne le résultat du traitement
*/
function supprimeLivraison($dateSuppression) {
$supprimer = "DELETE FROM pao_livraison WHERE date_livraison < '" . $dateSuppression ."'"; // SQL.
//A noter : une chaine de caractère comme une date doit être délimitée par des apostrophes en SQL
$requete = mysql_query( $supprimer ); // exécution
return $requete; // retourne le résultat du traitement
}
Tu peux ensuite appeller cette fonction ainsi :
// choix de la date à utiliser
$date_du_jour = date("Y-m-d") ; // j'ai inversé le format pour passer directement le format date de mysql
// supprime les livraisons antérieur à la date spécifiée
$result = supprimeLivraison($date_du_jour); // passe la date du jour en paramètre de la fonction et récupère le résultat dans $result
En revanche il serait effectivement judicieux comme te le propose
papipasto de planifier cela de manière quotidienne plutôt que de l'exécuter à chaque appel au script.
Alors tout d'abord, dans la déclaration de ta fonction, il faut en fait lister les arguments qu'elle peut recevoir en les séparant par des virgules. Ce pourrait être la date du jour, la date de livraison ou autre, mais dans ton cas ces paramètres sont détérminés par ta fonction, donc inutile de lui passer des paramètres.
Les données rammenées par le select ne semblant pas être utilisé, autant le virer (ou du moins le sortir de la fonction, quitte à l'exploiter ailleurs)
Je te propose par contre de décomposer en plusieurs fonctions ayant chacun un rôle. La fonction de suppression pourrait ainsi prendre en paramètre une date (qui pourrait ne pas être celle du jour, ouvrant ainsi l'usage possible, sans t'empêcher de passer le paramètre qui va bien) :
[php]/**
* Supprime les données antérieures à la date passée en paramètre et retourne le résultat du traitement
*/
function supprimeLivraison($dateSuppression) {
$supprimer = "DELETE FROM pao_livraison WHERE date_livraison < '" . $dateSuppression ."'"; // SQL.
//A noter : une chaine de caractère comme une date doit être délimitée par des apostrophes en SQL
$requete = mysql_query( $supprimer ); // exécution
return $requete; // retourne le résultat du traitement
}[/php]
Tu peux ensuite appeller cette fonction ainsi :
[php]// choix de la date à utiliser
$date_du_jour = date("Y-m-d") ; // j'ai inversé le format pour passer directement le format date de mysql
// supprime les livraisons antérieur à la date spécifiée
$result = supprimeLivraison($date_du_jour); // passe la date du jour en paramètre de la fonction et récupère le résultat dans $result[/php]
En revanche il serait effectivement judicieux comme te le propose [b]papipasto[/b] de planifier cela de manière quotidienne plutôt que de l'exécuter à chaque appel au script.