Bonjour à tous et à toutes,
Je m'occupe d'un site Internet qui tourne sous Prestashop.
J'ai récupéré un script qui permet de manipuler une BDD (SELECT, UPDATE, INSERT, DELETE ...) par l'intermédiaire d'un fichier CSV.
Je voudrais le modifier pour pouvoir associer plusieurs produits à une catégorie.
Pour info :
- La table où on associe un/des produit(s) à une catégorie s'appelle ps_category_product
- Il y a 3 colonnes dans cette table (et aussi dans le fichier CSV) :
- id_category
- id_product
- position
Dans un premier temps, ce que je souhaiterai faire, c'est que, pour chaque ligne du fichier CSV, PHP teste si la catégorie existe bien en BDD. Sinon => message erreur "La catégorie n'existe pas" + arrêt du script.
Voici le script en question :
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
| <?
include(dirname(__FILE__).'/../../config/config.inc.php');
require(dirname(__FILE__).'/../../init.php');
error_reporting(E_ALL);
ini_set('display_errors', true);
$fileName = 'category.csv';
$lineHandler = 1;
$arrayQuery = array();
$fieldSeparator = ";";
$row = 0;
$arrayKeys = array();
$arrayCategory = array();
// IMPORTANT : Customizable vars
$id_category = 'id_category';
/**
* Part 1 : translate csv to array.
*
*/
if (($handle = fopen($fileName, "r")) !== FALSE)
{
while (($data = fgetcsv($handle, 1000, $fieldSeparator)) !== FALSE) {
$num = count($data);$row++;
if($row == 1)
for ($c=0; $c < $num; $c++) {
$arrayKeys[] = $data[$c];
}
else
{
$arrayCursor = array();
for ($c=0; $c < $num; $c++) {
$arrayCursor[$arrayKeys[$c]] = $data[$c];
}
array_push($arrayCategory, $arrayCursor);
}
}
fclose($handle);
/**
* Part 2 : array treatment.
*
*/
foreach ($arrayCategory as $category)
{
if ( !empty($category[$id_category]))
{
}
else
{
exit;
}
}
} |
Comment faire pour vérifier que (l'id de) la catégorie existe bien dans la BDD, dans la table ps_category_product ?
Bien sûr, je pourrais aller en BDD et le vérifier par moi-même, mais je pose la question pour "sécuriser" mon script, pour ne pas avoir à vérifier à chaque fois et aussi, et surtout, pour l'exercice et apprendre PHP car pour le moment, je suis débutant en la matière.
Pouvez-vous m'aider SVP à rédiger ce script ?
D'avance merci.
Bonne journée
Partager