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
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 :
[html]<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>[/html]
et voici le code php de traitement des données :
[php]<?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();
?>[/php]
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