Création d'une fonction

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Création d'une fonction

par Invité » 12 janv. 2007, 16:42

Ok, je vous remercie pour tous c'est renseignement.
j'avance petit à petit.

--
Kweb

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.

par papipasto » 12 janv. 2007, 13:30

le problème que tu vas rencontrer c'est comment faire exécuter ta fonction.

j'entend par là que tu vas vouloir que tous les jours ton script se lance automatique pour supprimer les livraisons qui ont dépassé la date du jour.

pour ça il va falloir que tu utilises la crontab, je sais pas si tu y as accès sur ton hébergement.

Dans ma logique je ferai un script (sans utiliser une fonction) pour effacer les vieilles livraisons et je ferai une tache cron pour le lancer tous les jours.

Création d'une fonction

par Kweb » 12 janv. 2007, 13:09

Bonjour, tous le monde

Sur mon site perso,j'ai réalisé une page dynamique qui affiche des livraisons qui vont avoir lieux prochainement (exemple : le mardi 24 janvier 2007, livraison de fourniture)
je souhaiterais supprimer automatiquement les livraisons qui ont dépasser la date du jour.

je souhaite faire une fonction, mais n'etant que débutant je galére...
je pense que je n'ai pas encore la logique de programmation.

Voila le début de ce que j'ai fais qui est surment faux....
function livraison_fin ($date_livraison < $date_du_jour)
	{ 
	$donnee_sql = " SELECT * FROM pao_livraison ORDER BY date_livraison ";
	$affichage_donnee = mysql_query ($donnee_sql);<br />
	$resultat = mysql_fetch_array ($affichage_donnee);
	
		
	/* DEFINITION DE VARIABLE 
	***********************************************/
	$date_du_jour = date("d/m/Y") ;
	
	$date_livraison = $resultat['date_livraison'] ;
	/***********************************************/
	
	$supprimer = "DELETE FROM pao_livraison WHERE date_livraison < $date_du_jour";
	$requete = mysql_query( $supprimer ) ; 
	
	return $requete ;
Si quelqu'un pourrais m'aider et me donner des conseilles, je serais vraiment tres heureux..
merci de votre participation.