Probleme date -PHP-Mysql
Résolu
BlackYoup
-
@karamel Messages postés 1861 Date d'inscription Statut Modérateur Dernière intervention -
@karamel Messages postés 1861 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour a tous
déja, excusez moi si c'est dans la mauvaise section (par raport a mysql)...
voila, je debute en programmation, dans le php enfait. Apres avoir suivi le tuto qui est sur le site du zero, j'ai quand meme un probleme et je n'ai pas trouver la réponse la-bas :(
je vais vous decrire vite fais ce qui bloque:
j'ai voulu mettre un petit systeme de commentaires, avec des champs a remplir (auteur, le sujet, le texte), je le poste, tout va bien, il s'affiche bien, mais, je demande aussi a php de me recuperer l'heure pour qu'il affiche la date et l'heure a laquelle ca a été posté.
Malheuresement, ca me met: posté le 00/00/0000 a 00h00
apres quelques recherches, je n'ai pas tellement compris ce qu'il fallait faire, comme je debute juste, je voyais des fonctions que je ne connaissais pas et que je ne savais pas utiliser :/
je me tourne donc vers vous, si vous aviez une idée de comment résoudre ce probleme :)
vous allez surement me demander des infos plus precises, mais, je ne pas sais quoi, j'essayerais de vous repondre le plus rapidement possible ;)
merci a mes futurs sauveurs ^^
déja, excusez moi si c'est dans la mauvaise section (par raport a mysql)...
voila, je debute en programmation, dans le php enfait. Apres avoir suivi le tuto qui est sur le site du zero, j'ai quand meme un probleme et je n'ai pas trouver la réponse la-bas :(
je vais vous decrire vite fais ce qui bloque:
j'ai voulu mettre un petit systeme de commentaires, avec des champs a remplir (auteur, le sujet, le texte), je le poste, tout va bien, il s'affiche bien, mais, je demande aussi a php de me recuperer l'heure pour qu'il affiche la date et l'heure a laquelle ca a été posté.
Malheuresement, ca me met: posté le 00/00/0000 a 00h00
apres quelques recherches, je n'ai pas tellement compris ce qu'il fallait faire, comme je debute juste, je voyais des fonctions que je ne connaissais pas et que je ne savais pas utiliser :/
je me tourne donc vers vous, si vous aviez une idée de comment résoudre ce probleme :)
vous allez surement me demander des infos plus precises, mais, je ne pas sais quoi, j'essayerais de vous repondre le plus rapidement possible ;)
merci a mes futurs sauveurs ^^
A voir également:
- Probleme date -PHP-Mysql
- Mysql community server - Télécharger - Bases de données
- Expert php pinterest - Télécharger - Langages
- Airpods 3 date de sortie - Guide
- Mysql error in file: /engine/classes/mysql.php at line 53 ✓ - Forum Réseaux sociaux
- Jm date désabonnement - Forum Gmail
8 réponses
Et bien pour faire simple, sans ton code on saura pas te dire ce qui ne va pas dedans =)
Pour le coller, utilise la balide "code" (le bouton avec <> écris dessus). Comme ça, ça respecte l'indentation, et c'est lisible.
Pour le coller, utilise la balide "code" (le bouton avec <> écris dessus). Comme ça, ça respecte l'indentation, et c'est lisible.
ok, jme doutais bien un peu de ca
merci de m'avoir répondu si vite !!
voila le code de ma page qui me sert a récuperer les commentaires + a la fin, les champs pour en créer
et voila la page qui se charge de transmettre tous ca a mysql:
il vous faut aussi la base de donnée ??
ma table s'apelle "billets" dedans, il y a:
id(int11) clé primaire, auto_increment
auteur: varchar(255)
titre: varchar(255)
contenu: text
date_creation: datetime
tous avec "non" dans la colone null ainsi que dans défaut, toute ont "aucun"
j'espere avoir tous mis, n'hesitez pas a me redemander, a critiquer le code etc... !! je debute ;)
encore merci !
merci de m'avoir répondu si vite !!
voila le code de ma page qui me sert a récuperer les commentaires + a la fin, les champs pour en créer
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Commentaire</title> <link href="css/commentaire.css" rel="stylesheet" type="text/css" /> </head> <body> <?php include('banniere.php'); include('menu.php'); include('news.php'); ?> <div class="date"> <?php include('date.php'); ?> </div> <div id="corps"> <h1>Vos commentaires</h1> <?php // Connexion à la base de données try { $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=site', 'root', '', $pdo_options); // On récupère les 10 derniers billets $req = $bdd->query('SELECT id, titre, auteur, contenu, DATE_FORMAT(date_creation, \'%d/%m/%Y à %Hh%imin%ss\') AS date_creation_fr FROM billets ORDER BY date_creation DESC LIMIT 0, 20'); while ($donnees = $req->fetch()) { ?> <div class="messages"> <h3> <em>le <?php echo $donnees['date_creation_fr']; ?> posté par <?php echo $donnees['auteur']; ?> </em><br /> <?php echo htmlspecialchars($donnees['titre']); ?> </h3> <p> <?php //contenu du commentaire echo nl2br(htmlspecialchars($donnees['contenu'])); ?> <br /> </p> </div> <?php } // Fin de la boucle des billets $req->closeCursor(); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } ?> </div> <div id="post"> <form action="post_commentaire.php" method="post"> <p> <label for="auteur">Votre nom</label> : <input type="text" name="auteur" id="auteur" /><br /> <label for="titre">Titre</label> : <input type="text" name="titre" id="titre" /><br /> <textarea name="contenu" rows="8" cols="45" ></textarea><br /> <input type="submit" value="Poster" /> </p> </form> </div> <?php include('pied_de_page.php'); ?> </body> </html>
et voila la page qui se charge de transmettre tous ca a mysql:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Document sans titre</title> </head> <body> <?php // Connexion à la base de données try { $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=site', 'root', '', $pdo_options); // Insertion du commentaire à l'aide d'une requête préparée $req = $bdd->prepare('INSERT INTO billets (titre, auteur, contenu) VALUES (?,?,?)'); $req->execute(array($_POST['titre'], $_POST['contenu'], $_POST['auteur'])); // Redirection du visiteur vers la page header('Location: commentaire.php'); } catch(Exception $e) { die('Erreur : '.$e->getmessage()); } ?> </body> </html>
il vous faut aussi la base de donnée ??
ma table s'apelle "billets" dedans, il y a:
id(int11) clé primaire, auto_increment
auteur: varchar(255)
titre: varchar(255)
contenu: text
date_creation: datetime
tous avec "non" dans la colone null ainsi que dans défaut, toute ont "aucun"
j'espere avoir tous mis, n'hesitez pas a me redemander, a critiquer le code etc... !! je debute ;)
encore merci !
Yop,
Comment tu veux rentrer ta date dedans avec cette requête?
Y'a la fonction time() ou date() qui peux t'interresser. Cherche un tour sur le man de Php. Mais je crois bien que sur le SDZ y'a un passage du cours il ou parle du timestamp. C'est exactement ça qu'il te faut :)
Comment tu veux rentrer ta date dedans avec cette requête?
$req = $bdd->prepare('INSERT INTO billets (titre, auteur, contenu) VALUES (?,?,?)');
Y'a la fonction time() ou date() qui peux t'interresser. Cherche un tour sur le man de Php. Mais je crois bien que sur le SDZ y'a un passage du cours il ou parle du timestamp. C'est exactement ça qu'il te faut :)
encore merci !!
je me doutais bien qu'il fallait une fonction de ce genre. sur le sdz, ils parlent du timestap mais, surtout dans des cookies...
et, apres plusieurs test, je ne vois pas du tout comment integrer time () ou date() dans cette fonction. En fait, je ne la comprend meme pas quand j'integre ca :S
ca ressemblerais a ca ??
si tu pouvais me donner un petit coup de pouce stp ^^
encore merci d'avoir répondu aussi vite !
je me doutais bien qu'il fallait une fonction de ce genre. sur le sdz, ils parlent du timestap mais, surtout dans des cookies...
et, apres plusieurs test, je ne vois pas du tout comment integrer time () ou date() dans cette fonction. En fait, je ne la comprend meme pas quand j'integre ca :S
ca ressemblerais a ca ??
$req = $bdd->prepare('INSERT INTO billets (titre, auteur, contenu, date()) VALUES (?,?,?)');?? (evidement, ca me retourne une erreur ^^)
si tu pouvais me donner un petit coup de pouce stp ^^
encore merci d'avoir répondu aussi vite !
C'est loin pour moi, mais fait:
Tu en déduis donc que:
ça doit s'approcher de ce que tu veux.
y'a plus qu'à utiliser le cours sur le timestamp pour faire apparaitre la date sous le bonne forme une fois extraite de la BDD pour l'afficher =)
echo date();
Tu en déduis donc que:
$date = date(); $req = $bdd->prepare('INSERT INTO billets (titre, auteur, contenu, date) VALUES (?,?,?,?)'); $req->execute(array($_POST['titre'], $_POST['contenu'], $_POST['auteur'], $date));
ça doit s'approcher de ce que tu veux.
y'a plus qu'à utiliser le cours sur le timestamp pour faire apparaitre la date sous le bonne forme une fois extraite de la BDD pour l'afficher =)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut,
La fonction date() requiert un argument, une chaine indiquant le format.
Tu peux utiliser la fonction SQL NOW() afin d'insérer la date "actuelle".
La pensée mène le monde.
La fonction date() requiert un argument, une chaine indiquant le format.
Tu peux utiliser la fonction SQL NOW() afin d'insérer la date "actuelle".
$sql = 'INSERT INTO billets '; $sql .= ' (titre, auteur, contenu, date_creation) '; $sql .= 'VALUES '; $sql .= ' (?,?,?,NOW())'; $req = $bdd->prepare($sql); $req->execute(array( $_POST['titre'], $_POST['contenu'], $_POST['auteur'] ));
La pensée mène le monde.
merci a vous deux, j'ai pris l'option de apatik qui me parlais plus ;)
et ca marche niquel !!
sauf un probleme (evidement hein ^^)
l'heure qui est indiquée a 2h de retard
pour l'heure que je fais afficher sur le site, j'ai reussi a ajouter 2 a la valeur $heure
mais, la, apres plusieurs essais, je ne sais pas ou le mettre. Si il y a une autre solution, je suis preneur, mais, encore un grand merci a vous deux ;)
et ca marche niquel !!
sauf un probleme (evidement hein ^^)
l'heure qui est indiquée a 2h de retard
pour l'heure que je fais afficher sur le site, j'ai reussi a ajouter 2 a la valeur $heure
mais, la, apres plusieurs essais, je ne sais pas ou le mettre. Si il y a une autre solution, je suis preneur, mais, encore un grand merci a vous deux ;)
La fonction date() utilisée par le code de Apatik permet d'obtenir une chaine à partir d'un timestamp (actuel si pas précisé).
Mais un argument est obligatoire : une chaine indiquant le format de sortie.
« $date = date(); » n'est donc pas valide.
Les champs « DATETIME » requièrent le format suivant : AAAA-MM-JJ HH:MM:SS
Mais un argument est obligatoire : une chaine indiquant le format de sortie.
« $date = date(); » n'est donc pas valide.
Les champs « DATETIME » requièrent le format suivant : AAAA-MM-JJ HH:MM:SS
j'ai écrit ceci dans mon formulaire:
puis, mis en forme dans cette requete pour afficher:
ca marche, mais c'est quand meme bon ?? Je recherche tous simplement le moyen d'ajouter +2 a l'heure pour qu'elle soie bonne car, pour un message posté a 19h20 heure francaise, cela affiche 17h20 ...
merci !
$date = date("Y-m-d-H-i-s"); $req = $bdd->prepare('INSERT INTO billets (titre, auteur, contenu, date_creation) VALUES (?,?,?,?)'); $req->execute(array($_POST['titre'], $_POST['contenu'], $_POST['auteur'], $date));
puis, mis en forme dans cette requete pour afficher:
$req = $bdd->query('SELECT id, titre, auteur, contenu, DATE_FORMAT(date_creation, \'%d/%m/%Y à %Hh %imin %ss\') AS date_creation_fr FROM billets ORDER BY date_creation DESC LIMIT 0, 10');
ca marche, mais c'est quand meme bon ?? Je recherche tous simplement le moyen d'ajouter +2 a l'heure pour qu'elle soie bonne car, pour un message posté a 19h20 heure francaise, cela affiche 17h20 ...
merci !
« $date = date("Y-m-d-H-i-s"); » : ce n'est pas le format correct.
Utilise plutôt la fonction SQL NOW(), elle se chargera d'inscrire la date au bon format, ça évite du code PHP supplémentaire.
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/915206-les-dates-en-sql
Utilise plutôt la fonction SQL NOW(), elle se chargera d'inscrire la date au bon format, ça évite du code PHP supplémentaire.
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/915206-les-dates-en-sql