probleme 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 : probleme date

par Ryle » 11 déc. 2006, 15:55

Peut être un "point-virgule" pour séparer ces deux instructions indépendantes serait plus adapté qu'un "et" logique :)

Qui plus est, au lieu de le laisser trainer au milieu d'un onClick, je placerais ce code en un endroit plus à proprié et où tu en auras l'usage :)

par Invité » 11 déc. 2006, 15:54

grace a la reponse de iclo problème resolu, je n'avai pas penser mettre un ; à la place d'un & et maintenant cela marche.

Encore merci iclo

par Ajoloca » 11 déc. 2006, 15:53

Re,

Si ce que tu veux c'est de séparer les deux dates par '&' tu doit l'écrire comme ceci (je te parle au niveau syntaxique, pas fonctionnel)
<?php echo 'datedeb=' . $_REQUEST["datdeb"] . '&datefin=' . $_REQUEST["datfin"] ?>

par iclo » 11 déc. 2006, 15:52

Que vient faire un & entre deux opérations d'affectations ? il faut séparer les deux opérations par ;

ps: il vaut mieux utiliser les constantes super global $_POST et $_GET pour récupérer des données. (ici le formulaire étant en post)

par Invité » 11 déc. 2006, 15:47

ma fonction marche correctement, je pense vraiment que le probleme se situe a se niveau car lorsque je mets
<?php $datedeb=$_REQUEST["datdeb"] ?>
à la place de
<?php $datedeb=$_REQUEST["datdeb"] & $datefin=$_REQUEST["datfin"] ?>
cela fonctionne. Faut-t-il que je mette autre chose a la place de & ?

merci

par Ajoloca » 11 déc. 2006, 15:34

Bonjour,

MySQL te permet de transformer la date avec la fonction "DATE_FORMAT(date, 'format')"
Mais si tu veux absolument le faire en PHP voici un petit bout de code qui fonctionne
<?php
	function dateFrToSQL($dateFr){
		list($jour, $mois, $annee) = explode('/', $dateFr);
		return ($annee . '-' . $mois . '-' . $jour);
	}
	$dateDeb = '12/01/2006';
	$dateFin = '12/12/2006';
	echo 'Date Deb Fr : ' . $dateDeb . ' *** Date Deb DB : ' . dateFrToSQL($dateDeb) . '<br />';
	echo 'Date Fin Fr : ' . $dateFin . ' *** Date Fin DB : ' . dateFrToSQL($dateFin) . '<br />';
?>
Le résultat

Code : Tout sélectionner

Date Deb Fr : 12/01/2006 *** Date Deb DB : 2006-01-12 Date Fin Fr : 12/12/2006 *** Date Fin DB : 2006-12-12

par Invité » 11 déc. 2006, 15:04

je n'uilise rien de mysql pour se cas, je saisie juste deux date et je demande de les afficher au format mysql (pour ensuite l'utiliser bien ententu dans des requete, mais pour l'instant j'ai deja un probleme pour faire afficher les deux date au format mysql.

par iclo » 11 déc. 2006, 15:00

Et dans phpMyAdmin, qu'est-ce qui est affiché ? Commençons par savoir si c'est l'affichage ou l'insertion qui foire.

par Invité » 11 déc. 2006, 14:20

non le souci c'est que cela ne m'affiche pas la bonne date

2006-00-12 a la place de 2006-01-12

par 2501gigi » 11 déc. 2006, 13:21

c'est quoi le soucis c'est que sa affiche sur la meme ligne ou en année,moi,jour?

Ou c'est autre chose je ne vois pas bien ?

par 2501gigi » 11 déc. 2006, 13:20

c'est quoi le soucis c'est que sa affiche sur la meme ligne ou en année,moi,jour?

Ou c'est autre chose je ne vois pas bien ?

par Invité » 11 déc. 2006, 12:55

En faite j'ai mon formulaire :
<form name="enreg" method="post" action="">
  <p align="center" class="Style1"><span class="Style2">Veuillez saisir la date de d&eacute;but souhait&eacute; : </span>
    <INPUT NAME=datdeb TYPE=text id="datdeb" VALUE="<?php echo $_REQUEST["datdeb"]; ?>" size="10" maxlength="10">
	 <span class="Style2">La date de fin  : </span>
     <INPUT NAME=datfin TYPE=text id="datfin" VALUE="<?php echo $_REQUEST["datfin"]; ?>" size="10" maxlength="10">
     <input name="sub" type="image" onClick="<?php $datedeb=$_REQUEST["datdeb"] & $datefin=$_REQUEST["datfin"] ?>" src="../image/bouton/button1F.gif" width="115" height="23" border="0">
</form>
qui affiche ensuite :
<?php
if (($datedeb !="") & ($datefin !=""))
{

list($jour, $mois, $annee) = explode("/", $datedeb);  
$datedeb = $annee.'-'.$mois.'-'.$jour; 
list($jour, $mois, $annee) = explode("/", $datefin);  
$datefin = $annee.'-'.$mois.'-'.$jour; 
echo $datedeb.' '.$datefin;
Le souci c'est que si je rentre :
-datdeb =12/01/2006
-datfin =12/12/2006

et cela m'affiche : 2006-00-12 2006-12-12

je ne voie pas le souci!!!

par Ryle » 11 déc. 2006, 12:33

Comment ça "pourquoi les deux ne s'exécutent pas de la même manière" ? Ce sont deux langages de programmation différents, destinés chacun à une utilisation différente :)

Si on analyse ton code, voici ce qui se passe sur le serveur (puisque le php est exécuté en premier)
1. $datedeb=$_REQUEST["datdeb"] // affecte la valeur contenue dans $_REQUEST["datdeb"] à la variable $datedeb. Cette action est toujours vraie.

2. $datefin=$_REQUEST["datfin"] // affecte la valeur contenue dans $_REQUEST["datfin"] à la variable $datefin. Cette action est toujours vraie.

3. evalue l'expression "$datedeb=$_REQUEST["datdeb"] & $datefin=$_REQUEST["datfin"]" // la première retourne vraie, la seconde retourne vraie, le résultat est donc vrai. 

// Jusqu'ici, il n'y a rien d'affiché, rien de contrôlé, aucun traitement solicité, le contenu des balises php ne produira donc rien. 

4. génère le code HTML envoyé au navigateur : 
<input name="sub" type="image" onClick="" src="../image/bouton/button1F.gif" width="115" height="23" border="0">  
Je ne sais pas ce que tu souhaites faire, mais tu ne pars vraissemblablemet pas du tout dans la bonne direction :)

par Invité » 11 déc. 2006, 12:25

je ne comprend pas pourquoi les deux ne s'execute pas de la même manière. De quel manière est-ce que je peux faire pour avoir acces au deux dates ?
merci

par Ryle » 11 déc. 2006, 12:08

Ton soucis se situe surtout dans le fait que tu mélanges php et javascript. Le premier s'exécute côté serveur et permet de générer ta page, le second tourne côté client et permet d'interragir directement avec l'utilisateur.

La seule interraction entre ces deux langages, c'est que php peut générer du code javascript lorsqu'il construit la page, mais ça s'arrête là :)