NewbieContest

Général => Général => Discussion démarrée par: codejump le 26 Juillet 2015 à 14:21:58



Titre: problème date en php
Posté par: codejump le 26 Juillet 2015 à 14:21:58
hey ! :)
Bon j'ai un problème avec ma date sur mon petit chat je vous explique plus bas
mon script :
(page chat.php)
$reponse = $bdd->query('SELECT pseudo, message, DATE_FORMAT(datepost, \' %Hh%imin%ss\') AS datepost  FROM minichat ORDER BY ID DESC LIMIT 0, 50');

// Affichage de chaque message (htmlspecialchars = antixss)
while ($donnees = $reponse->fetch() )
{  
    echo '<p><strong>' . htmlspecialchars($donnees['pseudo']) . '</strong> : ' . htmlspecialchars($donnees['message']) . ' ['. htmlspecialchars($donnees['datepost']) .']</p>';
}

(page chat_post.php)
$req = $bdd->prepare('INSERT INTO minichat (pseudo, message, datepost) VALUES(?, ?, NOW())');
$req->execute(array($_POST['pseudo'], $_POST['message']));


donc le problème est, que quand je suis sur la page ca m'affiche que des zeros pour la date "http://gamecube.livehost.fr/GC/minichat.php" pour mieux comprendre.


Titre: Re : problème date en php
Posté par: pixis le 27 Juillet 2015 à 07:59:39
Dans ta BDD, ta colonne datepost n'est pas vide ? C'est une colonne datetime ?


Titre: Re : problème date en php
Posté par: codejump le 27 Juillet 2015 à 10:50:03
Ma colonne datepost dans ma BDD est comme ca : "0000-00-00 00:00:00"
et oui c'est un colonne datetime.


Titre: Re : problème date en php
Posté par: pixis le 27 Juillet 2015 à 10:50:51
Bon ben elle n'affiche que des 0 ? Alors pas étonnant que ta page n'affiche que des 0 :D
C'est dans l'INSERT que ça foire, du coup.


Titre: Re : problème date en php
Posté par: codejump le 27 Juillet 2015 à 11:02:46
ouais ^^
d'accord je vais voir merci ;)


Titre: Re : problème date en php
Posté par: codejump le 27 Juillet 2015 à 17:48:12
j'ai essayer mais je voit pas ou ca bloque :/


Titre: Re : problème date en php
Posté par: Asteriksme le 27 Juillet 2015 à 17:56:42
et si tu fais "select now()" ça te donne quoi?


Titre: Re : problème date en php
Posté par: codejump le 27 Juillet 2015 à 18:08:13
ça m'enlève carrément la date ^^.


Titre: Re : problème date en php
Posté par: laxa le 27 Juillet 2015 à 18:48:19
Perso j'ai ca :

Code:
mysql> select DATE_FORMAT(now(), '%Hh%imin%ss');
+-----------------------------------+
| DATE_FORMAT(now(), '%Hh%imin%ss') |
+-----------------------------------+
| 19h47min54s                       |
+-----------------------------------+
1 row in set (0.01 sec)

mysql>

Je ne sais pas trop ou est ton probleme :(.


Titre: Re : problème date en php
Posté par: ferbos le 27 Juillet 2015 à 20:15:39
Salut,

ce ne serait pas un problème de syntaxe? Je n'ai pas testé.

Code:
$req = $bdd->prepare("INSERT INTO minichat (pseudo, message, datepost) VALUES('?', '?', now())");

mais on trouve ceci aussi:
http://www.developpez.net/forums/d502298/php/php-sgbd/php-mysql/probleme-d-insert-champ-type-datetime/ (http://www.developpez.net/forums/d502298/php/php-sgbd/php-mysql/probleme-d-insert-champ-type-datetime/)

ferbos


Titre: Re : problème date en php
Posté par: pixis le 27 Juillet 2015 à 22:27:03
Ben moi j'ai créé une table avec les mêmes noms de champ et la même requête INSERT, et tout fonctionne bien. Je ne vois pas pourquoi ça ne marche pas de ton côté ... Au pire, fais comme dans le lien de Ferbos et initialise la date en php mais bon ...


Titre: Re : problème date en php
Posté par: ferbos le 28 Juillet 2015 à 06:58:23
Je me demande si ce n'est pas un problème de version php avec la fonction now().

ferbos


Titre: Re : problème date en php
Posté par: pixis le 28 Juillet 2015 à 07:28:46
Pixis likes it.


Titre: Re : problème date en php
Posté par: codejump le 28 Juillet 2015 à 12:01:42
Si on y est presque !
merci a tout le monde, j'ai effectivement fait comme "laxa" et "Asteriksme" ont dit maintenant ca m'affiche l'heure mais moi je voudrais l'heure ou le message a été envoyer ^^ du coup je remet mon code:
mnichat.php:
Code:
<?php
// Connexion à la base de données
try
{
    
$bdd = new PDO('mysql:host=localhost;dbname=*******;charset=utf8''********''********');
}
catch(
Exception $e)
{
        die(
'Erreur : '.$e->getMessage());

}
// 50 derniers messages
$reponse $bdd->query('SELECT pseudo, message, DATE_FORMAT(now(), \'%Hh%imin%ss\') AS datepost FROM minichat ORDER BY ID DESC LIMIT 0, 50');

// Affichage de chaque message (htmlspecialchars = antixss)
while ($donnees $reponse->fetch() )
{  
    echo 
'<p><strong>' htmlspecialchars($donnees['pseudo']) . '</strong> : ' htmlspecialchars($donnees['message']) . ' ['htmlspecialchars($donnees['datepost']) .']</p>';
}
$reponse->closeCursor();
?>


minichat_post.php:
Code:
try
{
$bdd = new PDO('mysql:host=localhost;dbname=*******;charset=utf8', '******', '*******');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}
// Insertion du message à l'aide d'une requête préparée
$req = $bdd->prepare("INSERT INTO minichat (pseudo, message, datepost) VALUES('?', '?', NOW())");
$req->execute(array($_POST['pseudo'], $_POST['message']));


Titre: Re : problème date en php
Posté par: ferbos le 28 Juillet 2015 à 12:27:24
Quelle heure? 00:00:00?

Je demande à avoir un test (ou plus) en live.... C'est pas possible....

ferbos


Titre: Re : problème date en php
Posté par: ferbos le 28 Juillet 2015 à 17:22:04
Me too.

Si on lit bien tout:
http://php.net/manual/en/mysqli.prepare.php (http://php.net/manual/en/mysqli.prepare.php)

Ce genre de syntaxe ne devrait pas marcher:
Code:
$req = $bdd->prepare("INSERT INTO minichat (pseudo, message, datepost) VALUES('?', '?', NOW())");

ferbos


Titre: Re : problème date en php
Posté par: ferbos le 28 Juillet 2015 à 19:12:57
Je crois qu'il a dit que c'était bon mais il ne l'a pas donné.

Enfin, pour répondre à la dernière question, je remplacerai:
Code:
$reponse = $bdd->query('SELECT pseudo, message, DATE_FORMAT(now(), \'%Hh%imin%ss\') AS datepost FROM minichat ORDER BY ID DESC LIMIT 0, 50');
par
Code:
$reponse = $bdd->query('SELECT pseudo, message, datepost FROM minichat ORDER BY ID DESC LIMIT 0, 50');

ferbos


Titre: Re : problème date en php
Posté par: codejump le 28 Juillet 2015 à 19:38:19
désolé Ge0, comment ca un schéma de la table ?
Ferbos : oui, j'ai remplacer et la j'ai la date mais l'heure est toujours en 00:00:00 alors qu'avec mon ancienne syntaxe j'avais l'heure, et pour un exemple je redonne le lien ;)
http://gamecube.livehost.fr/GC/minichat.php 


Titre: Re : problème date en php
Posté par: pixis le 28 Juillet 2015 à 20:07:50
Je suppose que tu as résolu ton problème puisque ça fonctionne

edit : Quoique ya plus les pseudos-messages mais des "?" à la place.


Titre: Re : problème date en php
Posté par: ferbos le 28 Juillet 2015 à 21:05:00
Pour l'heure, cela semble correct. Pourquoi ne pas faire sauter les quotes, autour des ?

ferbos


Titre: Re : problème date en php
Posté par: codejump le 29 Juillet 2015 à 09:31:34
yeeeah ca marche ahah ! :)
Merci tout le monde !!