Page 1 sur 2

date ne marche pas?

Posté : 03 févr. 2006, 13:15
par newbee
Re-
Avant de me rediriger, je tient à signaler que je vient de regarder le post :
http://www.phpfrance.com/forums/voir_sujet-8323.php... mais souci quand même :cry:
J'ai inserer le code
<?php
// seulement la date
$dateDuJour = date('d/m/Y');

// la date et l'heure
$dateDuJour = date('d/m/Y H:i:s');
?>
mais ça ne marche pas, rien dans ma table

Par contre le code
$date=date("Y-m-d");
fonctionnne bien. Maus si je fait d-m-Y à la place, plus rien...
Mon champ est :date, type date, not null et 0000-00-00en défaut (que je ne peux pas changer en 00-00-0000?)


C'est surement tout bête mais je sèche
Please help (comme dirais Leeloo)

Re: date ne marche pas?

Posté : 03 févr. 2006, 13:34
par mario
Maus si je fait d-m-Y à la place, plus rien...
Mon champ est :date, type date,
La date insérée dans un champ DATE est au format US ( YYYY-MM-DD )

Posté : 03 févr. 2006, 13:42
par lecobra_20
Don le seul moyen c'est d'utiliser le format
$date=date("Y-m-d"); 
Et ensuite le traiter pour le mettre sous la forme que tu le désire.
J'ai déjà édité une focntion permettant cela.

Voilà

Posté : 03 févr. 2006, 15:44
par newbee
Merci encore lecobra_20.
donc j'ai regardé ta fonction (cf http://www.phpfrance.com/forums/voir_su ... texte-.php pour ceux que ça interersse).
=> Message d'erreur dans ma page (Undefined variable:date in...).

Donc j'ai crée une nouvelle page vierge ou j'ai collé juste ta fonction (bien sympatoche), mais nada aussi, rien ne s'affiche, pas d'echo...
Comment se fait-ce?

Posté : 03 févr. 2006, 15:53
par mere-teresa
Plusieurs questions :
- ton champ de base de données se nomme comment ?
- quelle date souhaites-tu insérer dans la base ?

Posté : 03 févr. 2006, 17:00
par lecobra_20
ALors tout d'abord le echo se fait dans la fonction il suffit d'appeller la fonction ou tu veux qu'elle s'affiche exemple :

un fichier ou tu stock ta fonction (function.php) :
<?php 
function date_heure() 
{ 
    $jour_semaine = date("l"); 
    $jour_mois = date("j"); 
    $mois = date("m"); 
    $annees = date("Y"); 

    // Traduction des jours dans la langue francaise 
    $js = ""; 
    switch($jour_semaine) 
    { 
        case "Monday"    : $js = "Lundi";    break; 
        case "Tuesday"   : $js = "Mardi";    break; 
        case "Wednesday" : $js = "Mercredi"; break; 
        case "Thursday"  : $js = "Jeudi";    break; 
        case "Friday"    : $js = "Vendredi"; break; 
        case "Saturday"  : $js = "Samedi";   break; 
        case "Sunday"    : $js = "Dimanche"; break; 
    } 
    $jour_semaine = $js; 

    // Traduction des mois dans la langue francaise 
    $ms = ""; 
    switch($mois) 
    { 
        case "01"   : $ms = "Janvier"; break; 
        case "02"   : $ms = "Février"; break; 
        case "03"   : $ms = "Mars"; break; 
        case "04"   : $ms = "Avril"; break; 
        case "05"   : $ms = "Mai"; break; 
        case "06"   : $ms = "Juin"; break; 
        case "07"   : $ms = "Juillet"; break; 
        case "08"   : $ms = "Août"; break; 
        case "09"   : $ms = "Septembre"; break; 
        case "10"   : $ms = "Octobre"; break; 
        case "11"   : $ms = "Novembre"; break; 
        case "12"   : $ms = "Décembre"; break; 
    } 
    $mois = $ms; 

    // Regroupement de l'ensemble des variables pour former la date 
    $date = $jour_semaine." ".$jour_mois." ".$mois." ".$annees; 

    // Gestion de l'heure 
    $heure = date("H"); 
    $minutes = date("i"); 
    $secondes = date("s"); 

    // Regroupement de l'ensemble des variables pour former l'heure 
    $heure = $heure.":".$minutes.":".$secondes; 

    // On affiche le tout 
    echo $date .", il est ". $heure; 
} 
?> 
Ensuite sur une autre page ou tu veux l'afficher tu appels ta fonction (affiche.php)
<?php

// On inclue le fichier function pour l'affichage de la date/heure

include("function.php");

?>
<html>
<title>Voici l'heure</title>
<head>
</head>
<body>

<?php date_heure(); ?>

</body>
</html>
Et voilà la tu dois avoir sur ta page affiche.php le résultat suivant :
Vendredi 3 Février 2006, il est 15:49:33

Posté : 03 févr. 2006, 17:06
par mario
il existe, il faut le savoir une autre solution (en quelques lignes).
cf mon blog:> http://mario.monsiteinfo.info/index.php ... t-strftime

Posté : 03 févr. 2006, 17:07
par newbee
donc,
Mon champ s'appelle date (date, type date, not null et 0000-00-00). Je ne sais pas si c'est ça que tu veux.
La date c'est la date à laquelle un utilisateur c'est connecté.

En fait ce post est en correspondance avec un autre probleme (mais liés)...
Je recolle juste le morceaux qu'il te faut.

Cette page (frequentation.php) est appelé par un bouton sur une autre page avec un <form method="post" action="frequentations.php" name="form1">.
Donc voici le code de "frequentations.php" :
<?php
session_start();
$host="localhost";
$login="root";
$pass="";
$base="ma_base";
$connect= mysql_connect($host,$login,$pass);
mysql_select_db($base, $connect);

$date=date("Y-m-d");
$query = "INSERT INTO ma_table VALUES(NULL, '$date', '$_SESSION[identifiant]')";
mysql_query($query, $connect);
header ("Location: index.php");
?>
[/php]

Posté : 03 févr. 2006, 17:11
par lecobra_20
Essai comme ca pour insérere la date dans ta base de données :

<?php 
session_start(); 
$host="localhost"; 
$login="root"; 
$pass=""; 
$base="ma_base"; 
$connect= mysql_connect($host,$login,$pass); 
mysql_select_db($base, $connect); 


$query = 'INSERT INTO ma_table VALUES(NULL, "'.date("Y-m-d H:i:s").'", "'.$_SESSION['membre_id'].'")'; 
mysql_query($query, $connect); 
header ("Location: index.php"); 
?> 

Voilà et après tu utilise ce que je tes donné la fonction ect...

Posté : 03 févr. 2006, 17:12
par mario
<?php
$date=date("Y-m-d");
$query = "INSERT INTO ma_table VALUES(NULL, '$date', '$_SESSION[identifiant]')";
?>
[/php]
Si tu souhaites insérer la date du jour dans un champ de type DATE, remplace $query par
$query = "INSERT INTO ma_table VALUES(NULL, curdate(), '".$_SESSION['identifiant']."'";
et supprime $date = date("Y-m-d");
je ne pense pas qu'il soit indispensable de générer la date du jour avec php, alors que MySQL est capable de le faire tout seul.

Posté : 03 févr. 2006, 17:43
par newbee
... le_cobra20 : il faut que mon champs reste au format date? ou le mettre en varchar?

Sinon oki pour ta fonction, marche nickel :).
Mais pas dans mon bazard, juste sur une page vierge (affiche.php etc...)

Mon bazard, ou plutot ma page qui affiche les stats est :
<?
$sql= 'SELECT * from ma_table ORDER BY id DESC';
$req= mysql_query($sql) or die etc...;
while($data = mysql_fetch_assoc($req)) 
    { 			
		echo "<tr>";
		echo "<td><font face='Verdana' size='2' color='#234A94'>";
		echo '<b>'.$data['utilisateur'] ;
		echo "</font></td>";
		echo "<td><font face='Verdana' size='2' color='#234A94'>";
		echo '<b>'.$data['date'] ;
		echo "</font></td></tr>";
	} 
?>
Celle la marche mais comment inserer (apeller) ta fonction?


Je ne fais pas que me reposer sur vous, promis, j'apprends et je cherche de jours en jours. L'année prochaine c'est moi qui vous aiderais ;)

Posté : 03 févr. 2006, 17:46
par lecobra_20
Voilà :


insertion :
<?php
session_start(); 
$host="localhost"; 
$login="root"; 
$pass=""; 
$base="ma_base"; 
$connect= mysql_connect($host,$login,$pass); 
mysql_select_db($base, $connect); 


$query = 'INSERT INTO ma_table VALUES(NULL, "'.date("Y-m-d").'", "'.$_SESSION['membre_id'].'")'; 
mysql_query($query, $connect); 
header ("Location: index.php"); 
?>
Affichage :
<?php
session_start(); 
$host="localhost"; 
$login="root"; 
$pass=""; 
$base="ma_base"; 
$connect= mysql_connect($host,$login,$pass); 
mysql_select_db($base, $connect); 


$sql = 'SELECT * FROM ma_table';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);

$date = $data["date"];

// Traitement pour l'affichage de la date en francais 

// formatage
list($annee, $mois1, $jour) = explode("-", $date); 
// Traitement du formatage de la date
$mois = $mois1; 

// Traduction des mois dans la langue francaise 
$ms = ""; 
switch($mois) 
{ 
case "01" : $ms = "Janvier"; break; 
case "02" : $ms = "Février"; break; 
case "03" : $ms = "Mars"; break; 
case "04" : $ms = "Avril"; break; 
case "05" : $ms = "Mai"; break; 
case "06" : $ms = "Juin"; break; 
case "07" : $ms = "Juillet"; break; 
case "08" : $ms = "Août"; break; 
case "09" : $ms = "Septembre"; break; 
case "10" : $ms = "Octobre"; break; 
case "11" : $ms = "Novembre"; break; 
case "12" : $ms = "Décembre"; break; 
} 
$mois = $ms; 

// Regroupement de l'ensemble des variables pour former la date 
$date = $jour." ".$mois." ".$annee; 

// On affiche le tout 
echo $date ."; 
 
?>
Voilà

Posté : 03 févr. 2006, 17:46
par newbee
... dans mon cas je pense que le plus simple serait d'inserer la date au format voulu direct dans ma Bdd, puis d'appeller mon champ simplement dans ma page de stats...
Je me trompe?

Posté : 03 févr. 2006, 17:47
par lecobra_20
oui ton champ doit être défini en date()

Posté : 03 févr. 2006, 17:48
par lecobra_20
Non tu te trompe pas c'est une solution simpla et rapide.
Moi je tes donnais une solution si tu voulais formater la date en francais c tout avec les moi transformer 01 = Janvier