[RESOLU] Ajout 10 jours à une date

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 : [RESOLU] Ajout 10 jours à une date

Re: Ajout 10 jours à une date

par orell1 » 02 janv. 2013, 00:16

il suffisait de faire en fait :
client_a_rappeler = ADDDATE(str_to_date('".$client_appele_le."', '%d/%m/%Y %H:%i:%s' ), INTERVAL 10 DAY),
Merci à tous!
Vos réponses ont pu orienter mes recherches.

Re: Ajout 10 jours à une date

par orell1 » 31 déc. 2012, 18:23

Merci pour cette réponse.
En effet cette une solution mais que je ne peux malheureusement pas utiliser car il faut que ma date de rappel soit enregistrée dans la base afin de pouvoir lancer des recherches sur ce champs par la suite.

Merci quand même.

Re: Ajout 10 jours à une date

par yann18 » 31 déc. 2012, 17:15

Il faut changer la date dans le champs 1 puis cliquer sur submit
ENsuite il faut revenir sur le même formulaire et recliquer sur submit pour que le champs 2 soit updaté dans la base sql.
Quand on fait un submit sur un formulaire toutes les informations du formulaire sont envoyées simultanément .Par conséquent il n'est donc plus possible de revenir en arrière pour refaire un 2ème submit car les informations du formulaire ont été perdues lors du 1er submit.

Pour envoyer qu'un seul champ du formulaire il te faut faire une requête ajax qui exécuterait la requête sql d'insertion du champ (date appel) et le retour de reponse ajax sera recuperer pour faire un update du 2ème champ (date rappel).

Autre suggestion:
La donnée date de rappel est un champ calculé c-a-d obtenue à partir d'une date existante(date d'appel ) enregistrée dans la BD donc logiquement il est inutile(d'après la conception UML ou Mérise) d'enregistrer date de rappel en BD puisqu'on peut la retrouver ,à partir d'une requête SQL qui se base sur la date d'appel.Une requête SQL permettant d'afficher les informations de rappel est la suivante:
SELECT * FROM T_Client WHERE ADDDATE('date_dappel',10);
--ex :SELECT ADDDATE('2012-01-01', 10) afficherait 2012-01-11

Re: Ajout 10 jours à une date

par orell1 » 31 déc. 2012, 16:29

Salut,
Merci pour ta réponse.
J'utilise un datepicker

Re: Ajout 10 jours à une date

par Aureusms » 31 déc. 2012, 16:00

Oui par Javascript. Tu utilses un "date picker" ou entres-tu la date à la main ?

Re: Ajout 10 jours à une date

par orell1 » 31 déc. 2012, 15:09

Ok alors j'ai revu un peu la chose:

voici la partie de mon formulaire concerné :
<tr>
  <td>Client Appel&eacute; le <img src="images/arrow.gif" width="9" height="7" /></td>
  <td><input  name="client_appele_le" type="text" id="datepicker" value="<?php echo date('d/m/Y', strtotime($aff_donnee_client['client_appele_le']));?>"/></td>
  
  <?php 
$date_dappel = $aff_donnee_client['client_appele_le'];
$date_de_rappel = date('d/m/Y', strtotime($date_dappel.' +10 days'));
?>
  
  <td>Client &agrave; rapeller le <img src="images/arrow.gif" alt="" width="9" height="7" /></td>
  <td><input  name="client_a_rappeler" type="text" id="datepicker1" value="<?php echo $date_de_rappel;?>" /></td>
  <td colspan="5">&nbsp;</td>
</tr>
Comme vous le constaté le champs 2 ($date_de_rappel) doit avoir pour date celle de $date_dappel.' +10 days', jusque là tout fonctionne...
....
Le champs $date_de_rappel sera alors uptadé qu'au bout de la 2ème fois en cas de changement de date dans le champs client_appele_le...
Procédure:
Il faut changer la date dans le champs 1 puis cliquer sur submit
ENsuite il faut revenir sur le même formulaire et recliquer sur submit pour que le champs 2 soit updaté dans la base sql.

Il n'y a as une façon très simple de faire en sorte que si le champs 1 est modifié alors aussitôt le champs 2 affiche $date_dappel.' +10 days' ?

Si on peut faire ça, mon problème sera immédiatement réglé.

Merci infiniment.

Re: Ajout 10 jours à une date

par Nours312 » 31 déc. 2012, 13:32

ça me met: 30/12/2012+10 day()
donc, tu vois que le résultat du strtotime est vide ... php n'arrive pas à comprendre la chaine "30/12/2012+10 day",
pr contre en lisant la doc, tu devrais avoir un exemple du style :
strtotime ("2012-12-30 +10 days") ; 
fais
 echo "2012-12-30 +10 days (".strtotime ("2012-12-30 +10 days").")" ; 
et ensuite essaye d'adapter le code de mon précédent post pour obtenir quelque chose d'équivalent ...

Re: Ajout 10 jours à une date

par orell1 » 31 déc. 2012, 12:21

pour info le $_POST est récupéré comme ça :
<?php echo date('d/m/Y', strtotime($aff_donnee_client['client_a_rappeler']));?>

Re: Ajout 10 jours à une date

par orell1 » 31 déc. 2012, 12:04

Merci pour ta réponse.
ça me met: 30/12/2012+10 day()

Re: Ajout 10 jours à une date

par Nours312 » 31 déc. 2012, 11:57

Salut :

fais
echo $_POST['client_a_rappeler']."+10 day" ; echo "(".strtotime($_POST['client_a_rappeler']."+10 day").")" ; 
Pour être sûr de tes données ... (attention aux espaces^^) ;)

Re: Ajout 10 jours à une date

par orell1 » 31 déc. 2012, 09:28

Merci,
effectivement rien de plus simple de cette façon et c'est ce que je faisais mais ça ne fonctionne pas...
Voici ce que j'ai fait :
$client_a_rappeler = date("Y-m-d", strtotime($_POST['client_a_rappeler']."+10 day"));
Le champs est Updaté via :
client_a_rappeler = (str_to_date('".$client_a_rappeler."' , '%d/%m/%Y %H:%i:%s' ))
Merci par avance.

Re: Ajout 10 jours à une date

par rickphp » 31 déc. 2012, 02:19

Voici la réponse :
$date = date("Y-m-d", strtotime("+10 day"));
Rien de plus simple :)

Re: Ajout 10 jours à une date

par orell1 » 31 déc. 2012, 00:00

Ok.
Merci pour cette réponse.
Je vais essayé de comprendre car là je ne comprends pas trop. :?

Re: Ajout 10 jours à une date

par moogli » 30 déc. 2012, 23:42

salut,

tu peux trouver ton bonheur en SQL dans la doc http://dev.mysql.com/doc/refman/5.0/fr/ ... tions.html afin de faire faire le calcul à mysql.


sinon tourne toi du coté de la classe dateTIme pour le faire en php (beaucoup plus simple que d'utiliser une timestamp.


pour la mise a jour :
- S'il faut ajouter un nombre de jour à la date existante dans la table utilise mysql
- sinon utilise datetime (comme pour l'insertion).



@+

Re: Ajout 10 jours à une date

par orell1 » 30 déc. 2012, 23:38

voici le code source pour faire l'update et l'INSERT.

Merci
<?php


//--------les includes des fonctions permettent le bon fonctionnement du site-------------- 
include "include_fns.php";
//-----------------------------------------------------------------------------------------
if ($_GET['type'] ='nouveau_client') {
$initiales_courtier = $_GET['initiales'];
$nom_courtier = $_GET['nom_courtier'];
$s_courtier = $_GET['s_courtier'];
}
else {
$initiales_courtier = $_POST['initiales_courtier'];
$nom_courtier = $_POST['username'];
}
echo $initiales_courtier ;
echo $nom_courtier ;


// ------------------------------- recuperation des variables -----------------------------
	$id = $_POST['id'];
	$ref_courtier = $_POST['ref_courtier'];
	
	$num_client = $_POST['num_client'];
	$num_rpa = $_POST['num_rpa'];
	$client_appele_le = $_POST['client_appele_le'];
	$client_a_rappeler = $_POST['client_appele_le'];
	
	

	$paiement_recu_le = $_POST['paiement_recu_le'];
	$echeance_rpa = $_POST['echeance_rpa'];
	$civilite = $_POST['civilite'];
	$nom = $_POST['nom'];
	$prenom = $_POST['prenom'];
	$rs = addslashes(trim($_POST['rs']));
	$telephone = $_POST['telephone'];
	$fax = $_POST['fax'];
	$mail = addslashes(trim($_POST['mail']));
	$adresse = addslashes(trim($_POST['adresse']));
	$complement_adresse = addslashes(trim($_POST['complement_adresse']));
	$cp = $_POST['cp'];
	$ville = addslashes(trim($_POST['ville']));
	$montant = $_POST['montant'];
	$observations = addslashes(trim($_POST['observations']));




	//$num_dossier = round(rand(0, time())/25000);
	//$num_saisie = round(time()/1500000);


//-----------------------------------------------------------------------------------------
// || !$_POST['telephone'] || !$_POST['adresse'] || !$_POST['code_postal'] || !$_POST['ville'] || !$_POST['num_siret']
//-------------- verifie la presence des variables sinon affiche message erreur -----------
if (!$_POST['ref_courtier']) {
   			    
	echo "<div id=\"message\">".IMPOSSIBLE_POURSUIVRE_SAISIE_INCOMPLETE." !<br />";
       	echo "<a href=\"ajouter_client.php\">".RETOUR."</a></div><br />";
//-----------------------------------------------------------------------------------------

//-------------------- affichage du bas de page et quitte le programme --------------------
    	include "bas.php";	
    	exit();
}
else {
//-----------------------------------------------------------------------------------------

//--------------------- connexion db requete sql sur table articles -----------------------
    $conn = db_connect();
//-----------------------------------------------------------------------------------------
 $time = time();
//-----------------------------------------------------------------------------------------
	if ($id) {
		
	$sql = "update ".CLIENTS." set 
	ref_courtier ='$ref_courtier',
	initiales_courtier = '$initiales_courtier',
	num_client = '$num_client',
	num_rpa = '$num_rpa',
	client_appele_le = (str_to_date( '".$client_appele_le."' , '%d/%m/%Y %H:%i:%s' )),
	client_a_rappeler = UNIX_TIMESTAMP(str_to_date( '".$client_a_rappeler."', '%d/%m/%Y %H:%i:%s' ))+ 10 * 24 *3600,
	echeance_rpa = '$echeance_rpa',
	civilite = '$civilite',
	nom = '$nom',
	prenom = '$prenom',
	rs = '$rs',
	telephone = '$telephone',
	fax = '$fax',
	mail = '$mail',
	adresse = '$adresse',
	complement_adresse = '$complement_adresse',
	cp = '$cp',
	ville = '$ville',
	montant = '$montant',
	observations = '$observations',
	modifier = '$time',
	username ='$nom_courtier',
	sexe_username = '$s_courtier',
	paiement_recu_le = (str_to_date( '".$paiement_recu_le."' , '%d/%m/%Y %H:%i:%s' ))
	where id = '$id'";

	$result = @mysql_query($sql, $conn) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

	}
		
	else {
 // vérification si utilisateur existe déjà
   $conn = db_connect();
   $sql1 = "select * from ".CLIENTS." where nom = '$nom' or telephone = '$telephone'"; 
   $resultat1 = mysql_query($sql1, $conn);
   $nbr = mysql_num_rows($resultat1);

   if ($nbr > '0') {
	echo "<div id=\"message\">".IL_Y_A." $nb Client du nom de <b>'$nom'</b> ou un num&eacute;ro de t&eacute;l&eacute;phone <b>'$telephone'</b> ".DEJA_UTILISE."<br />";
       	echo "[  <a href='javascript:history.go(-1)'>".RETOUR."</a>  ]</div><br />";

//------------------- affichage du bas de page et quitte le programme --------------------
  	include "bas.php";
  	exit();
   } 
   else {		
		
		//$num_client = round(rand(1500, time())/500000);
		//$username = $_SESSION["administrateur"] or $_SESSION["utilisateur"];
$sql = "insert into ".CLIENTS." values ('','$ref_courtier',
	'$initiales_courtier',
	'$num_client',
	'$num_rpa',
	'$echeance_rpa',
	'$rs',
	'$civilite',
	'$nom',
	'$prenom',
	'$adresse',
	'$complement_adresse',
	'$cp',
	'$ville',
	'$mail',
	'$telephone',
	'$fax',
	'$montant',
	'$observations',
	'$time', 
	'$time', 
	  NULL,
	 '$identite_courtier ',
	 '$sexe_courtier ',
	 (str_to_date( '".$client_appele_le."' , '%d/%m/%Y %H:%i:%s' ))),
	(str_to_date( '".$client_a_rappeler."' , '%d/%m/%Y %H:%i:%s' ))),
	 (str_to_date( '".$paiement_recu_le."' , '%d/%m/%Y %H:%i:%s' )))";
	}

		//$date_limite = (time()+(86400 * 364));
//		$sql_dossier = "insert into ".ENTREPRISES_DOSSIERS." values ('', '$num_dossier', '$date_limite', '$num_saisie', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '$num_client')";
//		$resultat_dossier = @mysql_query($sql_dossier, $conn);
	//}
		$result = @mysql_query($sql, $conn) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
}

//-----------------------------------------------------------------------------------------

//----------------------si la requete n'aboutie pas message erreur ------------------------
if (!$result) {
	echo "<div id=\"message\">".ERREUR_REQUETE." <PRE>$sql</PRE><br />";
       	echo "<a href=\"ajouter_client.php\">".RETOUR."</a></div><br />";
  exit();
}
//------------------------------------------------------------------------------------------

//------------------------------------------------------------------------------------------
    include "bas.php";	
  // echo "<meta http-equiv=\"refresh\" content=\"0;url=rechercher_client.php\" />";
  echo "<meta http-equiv=\"refresh\" content=\"0;url=rechercher_client.php\" />";
//------------------------------------------------------------------------------------------
}
?>