Probleme date -PHP-Mysql
Résolu/Fermé
BlackYoup
-
Modifié par BlackYoup le 2/09/2011 à 15:38
@karamel Messages postés 1860 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 12 août 2024 - 28 mai 2016 à 20:39
@karamel Messages postés 1860 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 12 août 2024 - 28 mai 2016 à 20:39
A voir également:
- Probleme date -PHP-Mysql
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Retour a la ligne php ✓ - Forum PHP
- Cette photo n’a pas été prise cette année. trouvez la date, l'heure et avec quel modèle d'appareil photo elle a été prise. ✓ - Forum Graphisme
8 réponses
Apatik
Messages postés
5304
Date d'inscription
mercredi 28 janvier 2009
Statut
Contributeur
Dernière intervention
29 mai 2016
782
2 sept. 2011 à 15:38
2 sept. 2011 à 15:38
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 !
Apatik
Messages postés
5304
Date d'inscription
mercredi 28 janvier 2009
Statut
Contributeur
Dernière intervention
29 mai 2016
782
2 sept. 2011 à 15:50
2 sept. 2011 à 15:50
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 !
Apatik
Messages postés
5304
Date d'inscription
mercredi 28 janvier 2009
Statut
Contributeur
Dernière intervention
29 mai 2016
782
2 sept. 2011 à 16:29
2 sept. 2011 à 16:29
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
bissdebrazza
Messages postés
2065
Date d'inscription
vendredi 29 juin 2007
Statut
Contributeur
Dernière intervention
7 décembre 2017
712
2 sept. 2011 à 16:30
2 sept. 2011 à 16:30
Bonjour,
ce lien peut t'aider.
Cdt
ce lien peut t'aider.
Cdt
avion-f16
Messages postés
19250
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 décembre 2024
4 505
Modifié par avion-f16 le 2/09/2011 à 18:22
Modifié par avion-f16 le 2/09/2011 à 18:22
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 ;)
avion-f16
Messages postés
19250
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 décembre 2024
4 505
2 sept. 2011 à 18:23
2 sept. 2011 à 18:23
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 !
avion-f16
Messages postés
19250
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 décembre 2024
4 505
2 sept. 2011 à 19:41
2 sept. 2011 à 19:41
« $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
@karamel
Messages postés
1860
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
12 août 2024
1
28 mai 2016 à 20:39
28 mai 2016 à 20:39
merci