Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/08/2006, 16h41   #1
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 193
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 193
Points : 28
Points : 28
Par défaut formatter datetime php/mysql

bonjour à tous!

je souhaiterai savoir comment formatter une datetime pour l'enregistrer dans une base mysql je veux dire le code exact. sachant que je saisie dans mon formulaire la date à partir d'un calendrier et l'heure + minutes+second à partir de trois listes deroulantes.
dans ma base j'ai déclaré le champ date comme datetime.
ce que je veux avoir c'est de formatter la date et heure que je saisie à partir du formulaire pour avoir un seul champ date qui contient date+heure.

si quelqu'un a une meilleure proposition à me faire je serai très reconnaissante.
une petite remarque :la base de donnée gère les appels c 'est pour ça que j'ai declaré date d'appel comme datetime car durant une journee on reçoit plusieurs appels.
merci de me répondre!
zana74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2006, 16h50   #2
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
Code :
$date = $heure.-.$minute.-.seconde
il faut concatener je sais pas si c'est exactemet comme ca
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2006, 16h59   #3
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910


Code :
$date = $heure . "-" . $minute . "-" . $seconde;
Mais je crois pas que ça soit le bon format.

je pense plutôt à quelque chose comme ça :

Code :
$date = $annee . "-" . $mois . "-" . $jour . " " . $heure . ":" . $minute . ":" . $seconde;
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2006, 17h31   #4
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
voui c'est cela le bon format mais comme j'étais pas sur de la réponse me sui arété a la date pas continué dans les heures enfin c bien ca voila
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2006, 17h34   #5
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 193
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 193
Points : 28
Points : 28
merci de ta reponse !!
la date je l'insère à partir d'un calendrier en format aaaa-mm-jj par conte l'heur à partir de trois liste deroulantes.

je vais essayé le format que tu m'as donné puis je te dirai le resultat .
merci!
zana74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2006, 17h45   #6
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 193
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 193
Points : 28
Points : 28
le format datetime de mysql est 0000-00-00 00:00:00
moi j'obtiens le format 0000-00-00 00:00:00 en faisant ça:

$dat=$_POST["date"];
$h=$_POST["heure"];
$m=$_POST["minute"];
$s=$_POST["second"];
$heure= $h . ":" . $m . ":" . $s;

$dat_appel=$dat." ".$heure;

le prblème d'insertion de la date dans la base persiste toujours!!
zana74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2006, 17h50   #7
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
Citation:
Envoyé par zana74
le prblème d'insertion de la date dans la base persiste toujours!!
pour le format on se n'était pas tromper donc et apres c un insert je vois pa ou et le pb
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2006, 17h58   #8
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 193
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 193
Points : 28
Points : 28
l'erreur qui l'affiche est :
Erreur de syntaxe près de 'mm', 'zz','Française','',3','00','1',2,'2','4')' à la ligne 3

voila la fonction d'insertion d'un appel:
function insert_appel($dat_appel,$idqui_appel,$idlieu,$nom,$prenom,$nation,$idstat,$idsituation,$nbrenfant,$idtrancheage,$iddemande,$idpro,$idrep)
{
$query = "insert into personne_appelante(dat_appel,idqui_appelle,idlieu,nom,prenom,nationnalite,idstatut,idsituation,nbrenfant,idtrancheage,iddemande,iddemande,idpro,idrep)
VALUES ('$dat_appel','$idqui_appel','$idlieu,'$nom','$prenom','$nation','$idstat',$idsituation','$nbrenfant','$idtrancheage',$iddemande,'$idpro','$idrep');";

$result=mysql_query ($query) or die(mysql_error());
echo"$result";
if ($result)
{
$this->idappel= mysql_insert_id();
}
else
{
$this->idappel= -1;
}
}
zana74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2006, 18h07   #9
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 193
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 193
Points : 28
Points : 28
l'erreur qu'il affiche maintenant est :
Column count doesn't match value count at row 1

je n'ai pas compris bien ce message d'erreur

quellqu'un peut m'aider!!
zana74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2006, 18h16   #10
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Tu as 14 champs dans ton INTO mais que 13 dans ton VALUE.

Au passage il n'y a qu'un seul N à nationalité.

Et pour débugguer une requête comme ça le meilleur moyen reste de faire un echo $req;
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2006, 18h32   #11
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 193
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 193
Points : 28
Points : 28
merci j'ai trouvé l'erreur j'ai mis 2 fois un champ dans insert, je pense que je suis fatiguée.

tu peux me donner ton avis sur ce qui suit:

pour inserer un appel j'ai crée un formulaire qui contient des requetes sous forme de listes deroulante exemple :
lieu d'appel qui contient tout les lieus insérés dans la table lieu_appel(idlieu,lieu)
donc dans la table appel il y idlieu comme clé étrangère qui de type int.
dans ma liste deroulante j'affiche pas le idlieu j'affiche lieu qui de type varchar. exemple si l'insertion d'un appel je selectione paris comme lieu d'appel comment l'inserer dans la table appel puisque dans cette dernière j'ai id lieu pas lieu.

j'éspère que tu pourras m'aider
zana74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2006, 19h35   #12
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
dans t aliste déroulante tu peux spécifier ce qui s'affiche et la valeur de chaque choix qui peut etre different de ce qui s'affiche:

<option value='idlieu'>ce que tu vue afficher donc lieu</option>


voila voila donc la quand l'utilisateur choisira le lieu tur ecupérera de ton formulaire l'id
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2006, 20h36   #13
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 193
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 193
Points : 28
Points : 28
d'après toi je vais mettre idlieu dans "<option value=idlieu> $nom </option>";
je ne pense pas que ça va marcher car le idlieu il faut qu'il soit extrait de la table

voila ma liste déroulante lieu_appel
à l'origine <tr>
<TD width="182" height="16">
<p align="left"><font color="#396BAD">Lieu d'appel :</font></TD>
<TD width="553" height="16" colspan="3">
<?php


// Affiche les resultat d'un requete dans une liste déroulante
$query="select * from lieu_appel order by lieu_appel;";
$result=mysql_query($query);
$nombrelignes = mysql_num_rows($result);

if ($nombrelignes==0)
echo"il n'y a pas d'enregistrements";
else
{echo "<select name=idlieu style='color: #FFFFFF; border: 1px solid #81A2CB; background-color: #81A2CB'> ";
for ($i=0;$i<$nombrelignes;$i++) {
$nom = mysql_result($result,$i,"lieu_appel");
echo "<option value=$nom> $nom </option>";

}

echo "</select>";
}?>
</td></tr>
merci!
zana74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2006, 20h44   #14
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 193
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 193
Points : 28
Points : 28
je te remercie du fond du coeur, je viens de faire ce que tu m'as demandé et ça marche.
merci mille fois!!
en ce qui concerne l'orienté objet en php tu sais faire
zana74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2006, 20h45   #15
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 193
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 193
Points : 28
Points : 28
[QUOTE=zana74]je te remercie du fond du coeur, je viens de faire ce que tu m'as demandé et ça marche.
merci mille fois!!
en ce qui concerne l'orienté objet en php tu sais faire?
zana74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2006, 20h51   #16
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 193
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 193
Points : 28
Points : 28
[QUOTE=zana74]
Citation:
Envoyé par zana74
je te remercie du fond du coeur, je viens de faire ce que tu m'as demandé et ça marche.
merci mille fois!!
en ce qui concerne l'héritage en php tu sais faire, j'ai une classe générique publication et des sous classes livre, conference,article, rapport

j'ai crée les classes mais pas les methodes ajouter, modifier, supprimmer

* j'ai posté le code dans la rubrique SGBD ce matin

merci de me répondre!
zana74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2006, 21h00   #17
Membre habitué
 
Inscription : octobre 2003
Messages : 102
Détails du profil
Informations personnelles :
Âge : 39

Informations forums :
Inscription : octobre 2003
Messages : 102
Points : 108
Points : 108
Salut,

je ne saurais trop de déconseiller des fonctions "deprecated" du genre mysql_results() qui en plus t'oblige a compliquer ta boucle qui browse le jeu d'enregistrement.
De plus le html est un peu brouillon de sorte que par exemple tu as une balise <p non fermée inutile de surcroit qui se balade au mileu d'un d'une td.
Pour le deboggage l'indentation et la propreté du code seront es meilleurs alliés
Idealement tu pourais faire un select nominatif des champs dont tu as besoin (2 au max) et utilser mysql_fetch_row.
option la plus économique.

bref voici un code un peu plus rationnel.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
<tr>
	<td width="182" height="16" align="left">
			<font color="#396BAD">Lieu d'appel :</font>
	</td>
	<td width="553" height="16" colspan="3">
<?php 
// Affiche les resultat d'un requete dans une liste déroulante 
$query = "select * from lieu_appel order by lieu_appel;";
$result = mysql_query($query); 
IF (!mysql_num_rows($result))
	echo "il n'y a pas d'enregistrements";
else
{
		echo "<select name=idlieu style='color: #FFFFFF; border: 1px solid #81A2CB; background-color: #81A2CB'>\n";
		while ($data = mysql_fetch_assoc($result)) 
			echo "<option value=".$data["NOM_DU_CHAMP_ID_DANS_LA_TABLE"].">".$data["lieu_appel"]."</option>\n"; 
		echo "</select>\n"; 
}
?>
	</td>
</tr>
__________________
il n'y a pas de sotte existence
gisele est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2006, 09h36   #18
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 193
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 193
Points : 28
Points : 28
merci ! de ta répondre, j'ai résolu le problème
zana74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h50.


 
 
 
 
Partenaires

Hébergement Web