[BDD] Ajouter un champ type DATE et TIME

Fermé
MOH show - 10 avril 2009 à 19:47
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 - 13 avril 2009 à 21:51
Bonjour,

j'ai un formulaire :


<FORM name="formulaire" method="post" action="ajouter.php"> 
<label for="nom">Nom de la radio</label><br>
<INPUT type=text name="nom" id="nom"><br><br>

<label for="urlflux">Url du flux</label><br>
<INPUT type=text name="urlflux" id="urlflux"><br><br>

<INPUT type="submit" value="Envoyer">
</FORM>


et le fichier ajouter.php :

 <?php 
mysql_connect("url_base_de_donnée", "utilisateur", "mot_de_passe"); // Connexion à MySQL
mysql_select_db("nom_base_de_donnée"); // Sélection de la base

$nom = $_POST['nom']; 
$urlflux = $_POST['urlflux']; 

mysql_query("INSERT INTO radio values ('','$nom','$urlflux')"); 


echo "<script language=\"JavaScript\">
setTimeout(\"window.location='javascript:history.back()'\",3000); 
</script>
<br>
<center>Votre proposition a été envoyer.</center> ";


mysql_close(); 
?> 


-----------------------------------------------------------------------------

Voila, je voudrai que la base de donnée génère une valeur du type DATE et une valeur du type TIME.

Je les ai ajoutés mais, je ne peux pas ajouter des valeurs par le formulaire.
Je crois que il faut ajouter un truc dans ajouter.php

Pouvez vous m'aider ?
A voir également:

9 réponses

C'est bon, j'ai trouver ^^

<?php
mysql_connect("url_base_de_donnée", "utilisateur", "mot_de_passe"); // Connexion à MySQL
mysql_select_db("nom_base_de_donnée"); // Sélection de la base

$nom = $_POST['nom']; //Contenu de la case nom de la radio
$urlflux = $_POST['urlflux']; // Contenu de la case url du flux
$date = date("Y-m-d"); // Date au format Année-Mois-Jour
$heure = date("H:i:s" ); // Heure au format Heure:Minute:Seconde


mysql_query("INSERT INTO radio values ('','$nom','$urlflux','$date','$heure')");


echo "<script language=\"JavaScript\">
setTimeout(\"window.location='javascript:history.back()'\",3000); // delai en millisecondes
</script>
<br>
<center>Votre proposition a été envoyer.</center> ";


mysql_close();
?>

-------------------------------------------------------------------------------------

Mais, le probleme avec la fonction 'date("H:i:s");', c'est que ca me donne l'heure du serveur de l'hebergeur. Mais le serveur ce trouve au canada, je suppose. Il y a 6 heure de decalage en moins par rapport à l'heure francaise.


Y a-t-il un moyen de modifier 'date("H:i:s");' de facon qu'il avance de 6 heures ???
0
S'il vous plait, aidez moi...
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
12 avril 2009 à 21:50
Ben tu peux calculer l'heure réelle.

Exemple:
$heure = date('H');
$heure = $heure - 6;
$date = ''.$heure.':'date('i:s').'';

Je pense que ça devrai faire l'affaire.
0
$date est deja utiliser pour la date (jour, mois et année), ici c'est par l'heure.Donc je vais plutot choisir $heurefr. ;)

$heure = date('H');
$heure = $heure - 6;
$heurefr = ''.$heure.':'date('i:s').'';


Je vais testé pour voir si ca fonctionne.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Il y avais des erreurs, je les ai corrigées :

$heure = date('H');
$heure = $heure + 6;
$heurefr = date(''.$heure.':i:s');


Mais ta methode n'ai pas juste... pour t'expliquer...

Il est 19:41:02 en Amerique (il faut 6 heure de plus pour la france).
Mais en faire le +6 (dans ta methode), dans ma base de donnée, l'heure affiche 25:41:02.

Il y a un probleme, là... non ??? ;)
0
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 126
13 avril 2009 à 10:38
tu utilise un champ spécial de date d'SQL
Tu dois alors utilise le language SQL et c'est le plus simple ;)
exemple
$query = "INSERT INTO table (titre,date) VALUES('$titre', NOW())";

en rajoutant NOW() tu insère une date de format yyyy-dd-mm hh:mm:ss
Ceci c'est a utiliser pour un champ datetime (mais tu peux l'utiliser partout, sql réduira simplement ta chaine avec les charactère indésirable.
sinon si tu veux être précis, pour un champ de type date, tu dois mettre CURDATE() et pour un champ time, c'est CURTIME()

EDIT : pour récupérer ta date, utilise ceci
DATE_FORMAT(date,'%d/%m/%y - %H:%i:%s') as date

dans ta requete sql au lieu de simplement mettre "date"
bien sur tu peux formater la date comme tu veux. tu dois juste mettre un "%" devant les lettres représentant une date/heure tu as entre autre (tu en a bcp plus)
y : l'année a 2 chiffres
Y : l'année a 4 chiffres
d : le jour à 2 chiffres (je ne suis plus sur)
m : le moi a 2 chiffres
H : l'heure
i : les minutes
s : les secondes
mais il y a plein d'autre format de date, cherche sur le net :)

voilà :)
et il n'y a rien a faire en php pour ceci :)
0
Mais moi, je veux changer uniquemement l'heure (H:i:s). Pas la date (il est parfait donc pourquoi le modifier).

Et je veux pas de champ (DATETIME). Je veux un champ (DATE) et un autre champ (TIME).


A propos, j'ai cherche un peux sur la fonction date().

J'ai un truc sur Z (Décalage horaire en secondes) : http://www.phportail.net/articles/33-la-fonction-date.php

6H = 21600 sec

Mais apres, je sais pas comment de parametrer dans 'date("H:i:s" )'...
Je trouve pas de tuto.


Et est-ce que cela pourrai marche avec cette solution ?
0
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 126
13 avril 2009 à 15:09
Je t'ai trouvé 2 site expliquant ceci.
J'avoue ne jamais avoir travaillé avec les décalage horaire donc je ne pourrai pas t'aider d'avantage.
https://docs.microsoft.com/fr-fr/sql/t-sql/data-types/datetimeoffset-transact-sql?redirectedfrom=MSDN&view=sql-server-ver15
https://docs.postgresql.fr/7.4/datatype-datetime.html

a+
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
13 avril 2009 à 21:51
Tu peux sinon utiliser la fonction mktime() pour calculer l'heure. Cette fonction est fait pour ça en fait.
Regarde sur cette page: https://php.developpez.com/faq/?page=dates#date-dans-semaine
0