[RESOLU] Ajout 10 jours à une date

Mammouth du PHP | 687 Messages

30 déc. 2012, 20:53

Bonsoir à tous,
savez vous comment ajouter 10 jours à ça : client_a_rappeler = (str_to_date( '".$client_a_rappeler."' , '%d/%m/%Y %H:%i:%s' )),

Merci par avance.

Mammouth du PHP | 571 Messages

30 déc. 2012, 21:48

bonsoir,
additionner la date $client_a_rappeler(conversion en timestamp) par 10j (converti en secondes)
UNIX_TIMESTAMP(str_to_date( '".$client_a_rappeler."' , '%d/%m/%Y %H:%i:%s' ))+ 10 * 24 *3600


Mammouth du PHP | 687 Messages

30 déc. 2012, 22:28

Merci!
;-)
Je viens d'essayer ça : client_a_rappeler = (UNIX_TIMESTAMP(str_to_date( '".$client_a_rappeler."', '%d/%m/%Y %H:%i:%s' )))+ 10 * 24 *3600,
mais ça ne fonctionne pas...

:-(

Mammouth du PHP | 571 Messages

30 déc. 2012, 23:28

les 10j doivent-ils être sauvegardés (date déjà connue en bd + 10j)en BD dans le but d'une insertion ou d'une modification?
pourrais-tu poster tes codes sources?

Mammouth du PHP | 687 Messages

30 déc. 2012, 23:38

c
Modifié en dernier par orell1 le 30 déc. 2012, 23:39, modifié 1 fois.

Mammouth du PHP | 687 Messages

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\" />";
//------------------------------------------------------------------------------------------
}
?>


Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

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).



@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 687 Messages

31 déc. 2012, 00:00

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

Eléphant du PHP | 76 Messages

31 déc. 2012, 02:19

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

Mammouth du PHP | 687 Messages

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.

Mammouth du PHP | 661 Messages

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^^) ;)

Mammouth du PHP | 687 Messages

31 déc. 2012, 12:04

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

Mammouth du PHP | 687 Messages

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']));?>

Mammouth du PHP | 661 Messages

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 ...

Mammouth du PHP | 687 Messages

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.