les dates de php à mysql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : les dates de php à mysql

Re: les dates de php à mysql

par formatt » 04 juin 2012, 16:41

Merci beaucoup pour la doc.
J'ai utilisé un mysql_result() pour résoudre mon problème :wink: car je le trouvais plus simple à utiliser.

Re: les dates de php à mysql

par xTG » 04 juin 2012, 15:57

Jettes un oeil aux exemples de la documentation : http://fr.php.net/mysql_query ;)

Re: les dates de php à mysql

par formatt » 04 juin 2012, 15:42

c'est encore moi :)
cette fois ci, afin d'améliorer mon code, j'ai voulu faire une requete sql qui va chercher l' idFacture en fonction de la date transmise j'ai donc fait :
$sqlidfacture = "SELECT idFacture FROM FACTURE WHERE dateF = '".$date."';";
$idFacture = mysql_query($sqlidfacture) or die (mysql_error());
echo $idFacture;
sauf que mon echo $idFacture 'affiche un joli "resource id#7", que veux bien dire ce message ?
du coup j'avais ce changement dans mon deuxième INSERT :
$sqlPPA = "INSERT INTO prixparabonne (idAbonne,idFacture,datePPA,montantAbonnement,montantOption,montantCommunication,montantMiseEnService,
montantService,montantMateriel,prestationFacture,montantDepassementForfait,montantRemise,totalFactureParAbonne)
VALUES('".$cpt."
','".$idFacture."','".$date."','".$tab[6]."','".$tab[7]."','".$tab[8]."','".$tab[9]."','".$tab[10]."','".$tab[11]."','
".$tab[13]."','".$tab[14]."','".$tab[15]."','".$tab[12]."');";
mais ne marche donc pas.

Re: les dates de php à mysql

par formatt » 04 juin 2012, 14:11

c'était donc un problème de quote #-o
cette solution marche, merci beaucoup
j'ai donc aussi changé les quotes dans mon autre requête et tout fonctionne :priere:
$sqlPPA = "INSERT INTO prixparabonne (idAbonne,idFacture,datePPA,montantAbonnement,montantOption,montantCommunication,montantMiseEnService,
	montantService,montantMateriel,prestationFacture,montantDepassementForfait,montantRemise,totalFactureParAbonne)
	VALUES('".$cpt."
	',2,'".$date."','".$tab[6]."','".$tab[7]."','".$tab[8]."','".$tab[9]."','".$tab[10]."','".$tab[11]."','
	".$tab[13]."','".$tab[14]."','".$tab[15]."','".$tab[12]."');";

Re: les dates de php à mysql

par xTG » 04 juin 2012, 12:49

Hum longtemps que j'ai pas utilisé de date, sont pas gérées en tant que varchar ?
Essaies ceci :
$sqlF ="INSERT INTO Facture (dateF,totalFacture) VALUES ('".$date."',".$tab[12].");";

Re: les dates de php à mysql

par formatt » 04 juin 2012, 10:43

je l'ai créé en format date, si vous voulez, je peut mettre mon script de creation de mes tables pour aider
CREATE TABLE ABONNE (
	idAbonne INTEGER auto_increment,
	numAbonne INTEGER,
	numTel CHAR(10),
	nomUtilisateur VARCHAR(64),
	
	PRIMARY KEY (idAbonne) );

CREATE TABLE FACTURE (
	idFacture INTEGER auto_increment,
	dateF DATE,
	totalFacture FLOAT,
	PRIMARY KEY (idFacture) );

CREATE TABLE PRIXPARABONNE (
	idFacture INTEGER,
	idAbonne INTEGER,
	datePPA DATE,
	montantAbonnement FLOAT,
	montantOption FLOAT,
	montantCommunication FLOAT,
	montantMiseEnService FLOAT,
	montantService FLOAT,
	montantMateriel FLOAT,
	prestationFacture FLOAT,
	montantDepassementForfait FLOAT,
	montantRemise FLOAT,
	TotalFactureParAbonne FLOAT,
	PRIMARY KEY (idFacture,idAbonne,datePPA));


ALTER TABLE PRIXPARABONNE
ADD FOREIGN KEY (idFacture) REFERENCES FACTURE (idFacture);


ALTER TABLE PRIXPARABONNE
ADD FOREIGN KEY (idAbonne) REFERENCES ABONNE (idAbonne);

Re: les dates de php à mysql

par xTG » 04 juin 2012, 10:41

Quel est le format de ton champs date dans ta table ?

Re: les dates de php à mysql

par formatt » 04 juin 2012, 10:39

bonjour,
pour xTG : je viens d'essayer avec le format anglais(AAAA-MM-JJ), et sans mes conversions, mais dans phpMyAdmin mon champs dateF affiche toujours 0000-00-00.

pour Mazarini : sachant que dès le premier INSERT mon $date ne marche pas, alors il ne marche donc pas dans le deuxième INSERT :/.

Re: les dates de php à mysql

par Mazarini » 04 juin 2012, 10:24

Dans le second insert, tu utilises $_POST['date']. Essaye avec $date.

Eventuellement, tu peux afficher le code SQL de chaque insert pour le vérifier. Tu peux même le tester via phpmyadmin.

Re: les dates de php à mysql

par xTG » 04 juin 2012, 10:21

A voir ton formulaire je dirai que tu rentres un format de date qui n'est pas compréhensible pour PHP. ;)
JJ-MM-AAAA n'est pas bon. Soit tu le transformes en AAAA-MM-JJ à coup de explode() ou autre, soit tu demandes à ton utilisateur d'utiliser le format anglais. :)

les dates de php à mysql

par formatt » 04 juin 2012, 09:53

bonjour à tous,
je viens vous éxposer un problème que j'ai et que je n'arrive pas à resoudre. Le fait est que dans un formulaire je recupère une date (pour une facture) et lors de l'envois vers la base de données Mysql la date s'affiche en : 0000-00-00. Je pense que la solution doit être pas très eloigné de ce que je fait, mais je dois me poser trop de quetion.

voici le code du formulaire :
<form method="post" action="traitement.php"> 

<table width="628" border="0" align="center" cellpadding="5" cellspacing="0" bgcolor="#eeeeee"> 

<tr>

<td width="500"><font size=3><b>Entrer la date de la facture :</b></font><small>(type JJ-MM-AAAA)</small></td>
<td width="500" align="center"><input type="text" name="date"></td>
</tr>

<tr>
 
<td width="500"><font size=3><b>Selectionner votre fichier *.csv :</b></font><small>(le fichier doit être placé dans le répertoire C:\)</small></td> 
<td width="244" align="center"><input type="file" name="fichier" value="fichier"></td> 
<td width="137" align="center"> 

<input type="submit" value="Envoyer" name="envoyer"> 
</td> 
</tr> 
</table> 
</form>

et voici le code php de traitement des données :
<?php
mysql_connect('localhost','root', '') or die (mysql_error());
mysql_select_db('factureTelephone') or die(mysql_error());

$ligne = 0;

echo $_POST['fichier'].'<br />';

$fic = fopen($_POST['fichier'], "r");

echo $_POST['date'].'<br />';
$date = strtotime($_POST['date']); // conversion en timeStamp
echo $date;
echo'<br />';
$date = date('Y-m-d',$date); // conversion au format Mysql
echo $date;
while($tab=fgetcsv($fic,1024,';'))
{
$ligne ++;

if ($ligne == 108)
{

	$sqlF ='INSERT INTO Facture (dateF,totalFacture) VALUES ('.$date.','.$tab[12].');';
	mysql_query($sqlF) or die (mysql_error());
	
}
}
fclose($fic);
$fic = fopen($_POST['fichier'], "r");

$ligne =0;
$cpt = 1;
while($tab=fgetcsv($fic,1024,';'))
{

$ligne ++;
if ($ligne > 5 && $ligne<107)
{
	$sqlPPA = 'INSERT INTO prixparabonne (idAbonne,idFacture,datePPA,montantAbonnement,montantOption,montantCommunication,montantMiseEnService,
	montantService,montantMateriel,prestationFacture,montantDepassementForfait,montantRemise,totalFactureParAbonne)
	VALUES('.$cpt.
	',1,'.$_POST['date'].','.$tab[6].','.$tab[7].','.$tab[8].','.$tab[9].','.$tab[10].','.$tab[11].','
	.$tab[13].','.$tab[14].','.$tab[15].','.$tab[12].');';
	
	Mysql_query($sqlPPA) or die (mysql_error());
	$cpt ++;
}
}
fclose($fic);
mysql_close();
?>
on voit dans ce code que j'essaye des conversions bizare (ou pas), mais j'ai vrailment du mal à comprendre comment faire pour avoir l'affichage de la date.

EDIT : je n'explique pas le ocontexte :O
le but est de pouvoir enregistrer des factures de telephones dans une BDD car avant tout tété géré par des documents .csv