Bonjour;
J'ai un problème de remplissage de table sql via php.
Pour les autres tables , elle prennent bien en compte les mise à jour.
En gros je parse des fichiers xlsx via php et j'ai une classe update pour faire les mise à jour.
La structure de la table est :
table lru(ID_LRU, LRU) ==>(int Auto_INCREMENT, varchar(40))
mon code php qui contientles requete est le suivant:
La fonction de parsing est la suivante, en fait deux fonction parce que je parse deux fichiers, presque similaire:
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 <?php namespace Floose\DAO; use Floose\DAO\DataBaseConnect; class LRUDAO{ private $_db; public function __construct() { $this->setDb(); } public function setDb() { $cnx= new DataBaseConnect(); $this->_db = $cnx->run(); } public function save(\Floose\Parse\LRU $LRU){ return $this->_db->query("INSERT INTO lru (`ID_LRU`, `LRU`) VALUES (NULL, '".$LRU->getLRU()."');"); } public function saveAll(array $LRUdao) { $count=0; foreach ($LRUdao as $LRU) { if($this->save($LRU)) $count++; } return $count; } public function update(Floose\Parse\LRU $LRU) { } public function delete($id) { } public function findByID($id) { } }
Ainsi qu'une petite fonction dans le controlleur pour importer les fichiers selon leurs PATH
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
81 public function parseEquipement($filePath = null) { set_time_limit(0); //$listEquipement = []; $listEquipement = []; $count = 0; $chunkSize = 1024; $objReader = PHPExcel_IOFactory::createReader(PHPExcel_IOFactory::identify($filePath)); $spreadsheetInfo = $objReader->listWorksheetInfo($filePath); $chunkFilter = new \Floose\Parse\ChunkReadFilter(); $objReader->setReadFilter($chunkFilter); $objReader->setReadDataOnly(true); $chunkFilter->setRows(0, 1); $objPHPExcel = $objReader->load($filePath); $totalRows = $spreadsheetInfo[0]['totalRows']; for ($startRow = 1; $startRow <= $totalRows; $startRow += $chunkSize) { $chunkFilter->setRows($startRow, $chunkSize); $objPHPExcel = $objReader->load($filePath); $sheetData = $objPHPExcel->getActiveSheet()->toArray(null, null, true, false); $startIndex = ($startRow == 1) ? $startRow : $startRow - 1; if($dataToAnalyse[0][0]==NULL){ break; } if (!empty($sheetData) && $startRow < $totalRows) { $dataToAnalyse = array_slice($sheetData, $startIndex, $chunkSize); for ($i = 0; $i < $chunkSize; $i++) { if ($dataToAnalyse[$i]['0'] != NULL) { //$listEquipement[] = new Article($dataToAnalyse[$i]['0'], '', $dataToAnalyse[$i]['1']); $listEquipement[] = new LRU(NULL, $dataToAnalyse[$i]['0']); $count++; } } } $objPHPExcel->disconnectWorksheets(); unset($objPHPExcel, $sheetData); } return $listEquipement; print_r($count); } public function parseEquipment($filePath = null) { set_time_limit(0); $listEquipment = []; //$listEquipmentLRU = []; $count = 0; $chunkSize = 1024; $objReader = PHPExcel_IOFactory::createReader(PHPExcel_IOFactory::identify($filePath)); $spreadsheetInfo = $objReader->listWorksheetInfo($filePath); $chunkFilter = new \Floose\Parse\ChunkReadFilter(); $objReader->setReadFilter($chunkFilter); $objReader->setReadDataOnly(true); $chunkFilter->setRows(0, 1000); $objPHPExcel = $objReader->load($filePath); $totalRows = $spreadsheetInfo[0]['totalRows']; for ($startRow = 1; $startRow <= $totalRows; $startRow += $chunkSize) { $chunkFilter->setRows($startRow, $chunkSize); $objPHPExcel = $objReader->load($filePath); $sheetData = $objPHPExcel->getActiveSheet()->toArray(null, null, true, false); $startIndex = ($startRow == 1) ? $startRow : $startRow - 1; if($dataToAnalyse[0][0]==NULL){ break; } if (!empty($sheetData) && $startRow < $totalRows) { $dataToAnalyse = array_slice($sheetData, $startIndex, $chunkSize); for ($i = 0; $i < $chunkSize; $i++) { if ($dataToAnalyse[$i]['0'] != NULL) { //$listEquipment[] = new Article($dataToAnalyse[$i]['2'], $dataToAnalyse[$i]['3'], $dataToAnalyse[$i]['5']); $listEquipment[] = new LRU(NULL, $dataToAnalyse[$i]['1']); $count++; } } } $objPHPExcel->disconnectWorksheets(); unset($objPHPExcel, $sheetData); } print_r($count); return $listEquipment; // echo(array_slice($sheetData, $startIndex, $chunkSize)); }
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 $app->get('/admin/update/article', function() use ($app) { $parse = new Floose\Parse\Parse(); $filePathEquipement = __DIR__ . "/../../DATA/UpdateFiles/Equipement.xlsx"; $filePathEquipment = __DIR__ . "/../../DATA/UpdateFiles/equipment.xlsx"; $equipement = $parse->parseEquipement($filePathEquipement); $equipment = $parse->parseEquipment($filePathEquipment); //$updateArticle = new Floose\DAO\ArticleDAO(); $updateLRU = new Floose\DAO\LRUDAO(); $countEquipementLRU = $updateLRU->saveAll($equipement); $countEquipmentLRU = $updateLRU->saveAll($equipment); //$countEquipementArticle = $updateArticle->saveAll($equipement['1']); //$countEquipmentArticle = $updateArticle->saveAll($equipment['1']); $stat = stat($filePathEquipement); $dateImport = date(d . '-' . m . '-' . Y, $stat['mtime']); $date = new DateUpdate(null, "Equipement", $dateImport, getdate()['mday'].'-'.getdate()['mon'].'-'.getdate()['year']); $dateDAO = new DateUpdateDAO(); $dateDAO->save($date); $stat = stat($filePathEquipment); $dateImport = date(d . '-' . m . '-' . Y, $stat['mtime']); $date = new DateUpdate(null, "equipment", $dateImport, getdate()['mday'].'-'.getdate()['mon'].'-'.getdate()['year']); $dateDAO = new DateUpdateDAO(); $dateDAO->save($date); $result = '<div class="alert alert-success alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <h4> <i class="icon fa fa-check"></i> "LRU" update finished successfully!</h4> ' . ($countEquipementLRU + $countEquipmentLRU). ' Article(s) has been saved/modified.<br/> ' . $countEquipementLRU . ' --> Equipement.xlsx<br/> ' . $countEquipmentLRU . ' --> Equipement.xlsx </div>'; return $result; });
Partager