Bonjour,
- Je rempli ou met à jour une table nommée "stock" par le biais d'un script php qui vient lire un fichier csv : Cette étape est parfaitement ok.
- La table "stock" contient les champs suivants :
ref | code_article | designation | stock
- Mon problème :
Il arrive dans le fichier csv, que certaines lignes n'apparaissent plus (en fait, lorsque le stok est à 0 ou bien que l'article ne se fait plus, la ligne n'est plus retranscrie dans le fichier csv)
- Mon but :
Comparer le contenu de la table "stock" avec le contenu du fichier csv, par le biais du champ "code_article". Et donc si le fichier csv ne contient plus ce "code_article" alors détruire la ligne du "code_article" dans la table "stock".
Quelqu'un aurait-il une idée pour réaliser celà ?
Merci de votre intérêt !
----------------------------------------------------------------
- Voici le script php mis en place :
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 // ouverture du fichier en lecture if (file_exists(stocks.csv)) $fp = fopen("$nom_fichier", "r"); else{ echo "Fichier introuvable !<br>Importation stoppée."; exit(); } // importation while (!feof($fp)){ $ligne = fgets($fp,4096); $liste = explode(";",$ligne); $ref = $liste[0]; $code_article = $liste[1]; $designation = $liste[2]; $stock = $liste[3]; // Lecture de la table $sql = "SELECT code_article FROM stock WHERE code_article='$code_article'"; $resultat = mysql_query($sql); $row = mysql_num_rows($resultat); // Si le "code_article" n'existe pas, on l'insère if ($row == 0) { $sql2 = "INSERT INTO stock VALUES(\"$ref\",\"$code_article\",\"$designation\",\"$stock\")"; // Sinon on le met à jour } else { $sql2 = "UPDATE stock SET stock = '$stock' WHERE code_article='$code_article'"; // On ferme le tout } $resultat2 = mysql_query($sql2); } fclose($fp); mysql_close();
Partager