Bonjour voici mon probleme
jai une boucle qui insert des données trimestriel (provenant d'un fichier excel) , j'aimerai tester si la date de mon fichier excel n'est pas deja en base , si elle n'est pas en base je peux entrer dans ma boucle et insert . (car le fichier trimestriel a la meme date pour chaque ligne) je ne sais pas comment tester la date sans entrer dans ma boucle.
Voici mon code qui est fonctionnel mais qui ne teste pas si la date existe deja avant l'insertion
extract.php
--- fonction.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80 <?php include 'includes/global.inc'; include 'includes/functions.php'; $link = mysql_connect($host, $user, $pass) or die("Can not connect." . mysql_error()); mysql_select_db($db) or die("Can not connect."); if($_FILES) { $fichier=basename($_FILES['file']['name']); $ext_fichier=strchr($_FILES['file']['name'],'.'); $taille_fichier= filesize($_FILES['file']['tmp_name']); } //upload du fichier if($_POST) { if (!in_array($ext_fichier,$ext)) { $erreur=" ERREUR Doit être au format csv"; } if ($taille_fichier>$taille_max) { $erreur=" ERREUR le fichier est trop volumineux"; } if(file_exists( $rep . $_FILES['file']['name'])) { $erreur=" ERREUR le fichier a déjà été uploadé "; } } if(isset($erreur)) { echo $erreur; } if(!isset($erreur)) { if(move_uploaded_file($_FILES['file']['tmp_name'], $rep . $fichier=$_FILES['file']['name'])) { $handle = fopen ($rep.$fichier,'r'); fgetcsv ($handle, 0, ";"); while ($data = fgetcsv ($handle, 1000, ";")) { //traitement des données $data[41] = str_replace('','',$data[41]); $data[2] = implode('-',array_reverse(explode('/',$data[2]))); $periodeconso=$data[0]; $periodeabonnement=$data[1]; $datefacture=$data[2]; $ligne=$data[8]; $montant=$data[41]; $montant=str_replace(',','.',$montant.";"); //insertion en base $code_retour = insertSfr ($periodeconso,$periodeabonnement,$datefacture,$ligne,$montant); } } if ($code_retour) { // echo 'ok'; exportTocsv (); } else { echo 'Insertion echoue'; } mysql_close (); fclose ($handle); }
--- global
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 <?php include 'includes/db.inc.php'; include 'includes/global.inc'; function insertSfr($periodeconso,$periodeabonnement,$datefacture,$ligne,$montant ){ // Préparation de la requete d'insertion $sql = "INSERT INTO consomation (periode_conso,periode_abonnement,date_facture,ligne,montant) VALUES ('".$periodeconso."','".$periodeabonnement."','".$datefacture."','".$ligne."','".$montant."')"; $result= mysql_query($sql); if (!$result) { $message = '<b>Invalid query:</b>' . mysql_errno() . '<br>' . mysql_error() . '<br><br>'; $message .= '<b>Whole query:</b><br>' . $sql . '<br><br>'; $message .= 'ON ' . __FILE__ . ' LINE ' . __LINE__ ; echo $message; die(); } return $result; } function testDate ($datefacture){ include 'includes/db.inc.php'; include 'includes/global.inc'; $sql = "SELECT date_facture FROM consomation WHERE date_facture ='".$datefacture."'"; $result = mysql_query($sql); } //exportation des donnees en csv function exportTocsv (){ include 'includes/db.inc.php'; include 'includes/global.inc'; $result = mysql_query("SHOW COLUMNS FROM ".$table.""); $i = 0; if (mysql_num_rows($result) > 0) { while ($row = mysql_fetch_assoc($result)) { //$csv_output .= $row['Field'].";"; $i++;} } //$csv_output .= "\n"; $values = mysql_query("SELECT * FROM ".$table." WHERE month=".$previousmonth.""); while ($rowr = mysql_fetch_row($values)) { for ($j=0;$j<$i;$j++) { $csv_output .= str_replace('.',',',$rowr[$j].";"); } $csv_output .= "\n"; } $filename = $file."_".date("d-m-Y_H-i",time()); header("Content-type: application/vnd.ms-excel"); header("Content-disposition: csv" . date("Y-m-d") . ".csv"); header( "Content-disposition: filename=".$filename.".csv"); print $csv_output; exit; } /* function testDate ($datefacture){ $sql = "SELECT COUNT(date_facture) as count FROM consomation WHERE date_facture ='".$datefacture."'"; $result = mysql_query($sql); $count = mysql_result($result,0,'count'); return $count; } */ ?>
Merci pour votre aide j'espere avoir posté dans la bonne section.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?php $rep='extract/'; //repertoire d'upload $taille_max=2097152; //taille max upload $ext=array('.csv'); $today = date("d.m.y"); $code_retour = null; $file = 'mp'; // csv name. $csv_output = ''; $previousmonth=date("m",strtotime("-1 months")); $currentyear = date("Y"); ?>
Partager