Fonction php pour convertir date sql

Résolu
Gardeboue Messages postés 49 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 7 janvier 2019 - 7 janv. 2019 à 08:48
Gardeboue Messages postés 49 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 7 janvier 2019 - 7 janv. 2019 à 13:58
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

jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
7 janv. 2019 à 09:54
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....
1
Gardeboue Messages postés 49 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 7 janvier 2019
7 janv. 2019 à 11:22
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.
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
Modifié le 7 janv. 2019 à 13:48
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))

{
0
Gardeboue Messages postés 49 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 7 janvier 2019
7 janv. 2019 à 13:22
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
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344 > Gardeboue Messages postés 49 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 7 janvier 2019
7 janv. 2019 à 13:49
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']
0
Gardeboue Messages postés 49 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 7 janvier 2019
Modifié le 7 janv. 2019 à 14:05
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
0
Rejoignez-nous