Comparer le contenu d'une table avec un fichier csv
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:
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(); |