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:

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) {
 
    }
}
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
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));
    }
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
$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">&times;</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;
});