Fonction php pour convertir date sql [Résolu]

Signaler
Messages postés
49
Date d'inscription
mardi 9 mai 2017
Statut
Membre
Dernière intervention
7 janvier 2019
-
Messages postés
49
Date d'inscription
mardi 9 mai 2017
Statut
Membre
Dernière intervention
7 janvier 2019
-
Bonjour,
Je sais que je déterre un sujet souvent évoqué mais après moultes et moultes essais j'y arrive pas.
Je cherche à convertir au moment de l'affichage ma date au format sql de base (année-mois-jour h:m:s) en jour/mois/année à h:m.
Je sauvegarde ma date avec la fonction toute faite sql now().
Lorsque je fais une requête sql directement dans phpMyAdmin çà fonctionne:
SELECT DATE_FORMAT(date_creation, '%d% %m %Y à %H:%i') AS date_fr FROM livreor

Qui une fois converti en php donne:
$sql = "SELECT DATE_FORMAT(date_creation, \'%d% %m %Y à %H:%i\') AS date_fr FROM livreor";

Je claque çà dans mon php juste avant l'echo qui affiche la date et là ma variable date_fr est vide.
Si je fais appel à vous c'est que je viens de passer une journée à essayer des tas de trucs sans résultat.
Merci de votre aide

1 réponse

Messages postés
29896
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 octobre 2020
338
Bonjour,

Les backSlashes ici ne servent à rien
$sql = "SELECT DATE_FORMAT(date_creation, \'%d% %m %Y à %H:%i\') AS date_fr FROM livreor";


Il suffit de faire
$sql = "SELECT DATE_FORMAT(date_creation, '%d% %m %Y à %H:%i') AS date_fr FROM livreor";


Si le souci persiste malgré cela, pense à nous donner la suite du code php....
Messages postés
49
Date d'inscription
mardi 9 mai 2017
Statut
Membre
Dernière intervention
7 janvier 2019

Salut Jordan

effectivement tu as raison mais cela ne change rien.
voici toute la partie de mon code concernant l'affichage
if (isset($_GET['page']))
{
        $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
        $page = 1; // On se met sur la page 1 (par défaut)
}

// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;

$reponse = mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);

while ($donnees = mysql_fetch_array($reponse))

{

$donnees['message'] = nl2br($donnees['message']);// On remplace les entrées par des <br />



$sql = "SELECT DATE_FORMAT(date_creation, '%d% %m %Y à %H:%i') AS date_fr FROM livreor";

echo '<p><font color="cyan"><u><strong>' . $donnees['pseudo'] . '</u></strong></font> a écrit le ' . $date_fr . '<br />';

echo '<p><font color="cyan"><u><strong>' . $donnees['pseudo'] . '</u></strong></font> a écrit le ' . $donnees['date_creation'] . '<br />';
		echo '<font color="white">'. $donnees['message'] . '</font></p><br />';
		
		}
		

mysql_close(); // On ferme la connexion à MySQL


je précise que la ligne 27 est un doublon de la 25 mais qui fonctionne correctement avec le format initial.
C'est la 25 que je cherche à faire fonctionner en récupérant la variable date_fr qui devrait contenir ma date au nouveau format.
Messages postés
29896
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 octobre 2020
338
Oulaaaa.....
Déjà.. tu utilises l'ancienne extension mysql... qui est désormais OBSOLETE.
Il faut que tu passes à PDO ou mysqli.

Ensuite.. tu as écris une requête.... mais... tu ne l'exécutes pas.... un peu normal dans ces conditions que ça ne te retourne rien non. ??

Et puis pourquoi faire une nouvelle requête... il sufft de modifier la première

$sql = "SELECT  T.* 
                          , DATE_FORMAT(T.date_creation, '%d %m %Y à %H:%i') AS date_fr 
            FROM livreor  T
            ORDER BY T.id DESC 
            LIMIT " . $premierMessageAafficher . "," . $nombreDeMessagesParPage;

$reponse = mysql_query($sql); // edit : $sql et non $sql1

while ($donnees = mysql_fetch_array($reponse))

{
Messages postés
49
Date d'inscription
mardi 9 mai 2017
Statut
Membre
Dernière intervention
7 janvier 2019

j'ai fais l'essai de ton code après avoir enlevé le 1 du sql en ligne 9 qui me renvoyait une erreur mais date_fr est toujours vide
Messages postés
29896
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 octobre 2020
338 >
Messages postés
49
Date d'inscription
mardi 9 mai 2017
Statut
Membre
Dernière intervention
7 janvier 2019

Dis voir... tu récupères où $date_fr ??
Il faut faire comme pour les autres données issues de la bdd bien entendu...
$donnees['date_fr']
Messages postés
49
Date d'inscription
mardi 9 mai 2017
Statut
Membre
Dernière intervention
7 janvier 2019

Je la récupère... bennnn.... heuuuuuu....
Ok je sors !!!!
en fait j'avais pas capté que la modif s’opérait au niveau de la bd
çà marche mon ami
je crois que c'est pas la première fois que tu me dépannes.
Un grand merci à toi