date ne marche pas?

Eléphant du PHP | 74 Messages

03 févr. 2006, 13:15

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)

Mammouth du PHP | 768 Messages

03 févr. 2006, 13:34

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 )
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

Eléphant du PHP | 71 Messages

03 févr. 2006, 13:42

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à

Eléphant du PHP | 74 Messages

03 févr. 2006, 15:44

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?

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

03 févr. 2006, 15:53

Plusieurs questions :
- ton champ de base de données se nomme comment ?
- quelle date souhaites-tu insérer dans la base ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 71 Messages

03 févr. 2006, 17:00

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

Mammouth du PHP | 768 Messages

03 févr. 2006, 17:06

il existe, il faut le savoir une autre solution (en quelques lignes).
cf mon blog:> http://mario.monsiteinfo.info/index.php ... t-strftime
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

Eléphant du PHP | 74 Messages

03 févr. 2006, 17:07

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]

Eléphant du PHP | 71 Messages

03 févr. 2006, 17:11

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...
Modifié en dernier par lecobra_20 le 03 févr. 2006, 17:17, modifié 1 fois.

Mammouth du PHP | 768 Messages

03 févr. 2006, 17:12

<?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.
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

Eléphant du PHP | 74 Messages

03 févr. 2006, 17:43

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

Eléphant du PHP | 71 Messages

03 févr. 2006, 17:46

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à
Modifié en dernier par lecobra_20 le 03 févr. 2006, 18:00, modifié 4 fois.

Eléphant du PHP | 74 Messages

03 févr. 2006, 17:46

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

Eléphant du PHP | 71 Messages

03 févr. 2006, 17:47

oui ton champ doit être défini en date()

Eléphant du PHP | 71 Messages

03 févr. 2006, 17:48

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