merevinh
Messages postés30Date d'inscriptionmardi 5 juin 2012StatutMembreDernière intervention 6 octobre 2014
-
18 mars 2013 à 14:10
xander18
Messages postés68Date d'inscriptiondimanche 24 février 2013StatutMembreDernière intervention21 janvier 2015
-
20 mars 2013 à 00:43
Bonjour, et tout d'abord désolé pour la longueur du post il est très long je sais mais ce problème me bouffe depuis un moment et je n'arrive pas à m'en sortir. Je dispose d'un fichier CSV d'environ 300 lignes que je dois insérer dans la base de données de Prestashop. Voici les tables sur lesquelles je travaille :
CREATE TABLE IF NOT EXISTS 'ps_category' (
'id_category' int(10) unsigned NOT NULL AUTO_INCREMENT,
'id_parent' int(10) unsigned NOT NULL,
'id_shop_default' int(10) unsigned NOT NULL DEFAULT '1',
'level_depth' tinyint(3) unsigned NOT NULL DEFAULT '0',
'nleft' int(10) unsigned NOT NULL DEFAULT '0',
'nright' int(10) unsigned NOT NULL DEFAULT '0',
'active' tinyint(1) unsigned NOT NULL DEFAULT '0',
'date_add' datetime NOT NULL,
'date_upd' datetime NOT NULL,
'position' int(10) unsigned NOT NULL DEFAULT '0',
'is_root_category' tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY ('id_category'),
KEY 'category_parent' ('id_parent'),
KEY 'nleftright' ('nleft','nright'),
KEY 'nleftrightactive' ('nleft','nright','active'),
KEY 'level_depth' ('level_depth'),
KEY 'nright' ('nright'),
KEY 'nleft' ('nleft')
)
ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=32 ;
CREATE TABLE IF NOT EXISTS 'ps_category_lang' (
'id_category' int(10) unsigned NOT NULL,
'id_shop' int(11) unsigned NOT NULL DEFAULT '1',
'id_lang' int(10) unsigned NOT NULL,
'name' varchar(128) NOT NULL,
'description' text,
'link_rewrite' varchar(128) NOT NULL,
'meta_title' varchar(128) DEFAULT NULL,
'meta_keywords' varchar(255) DEFAULT NULL,
'meta_description' varchar(255) DEFAULT NULL,
PRIMARY KEY ('id_category','id_shop','id_lang'),
KEY 'category_name' ('name')
)
ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS 'ps_category_product' (
'id_category' int(10) unsigned NOT NULL,
'id_product' int(10) unsigned NOT NULL,
'position' int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY ('id_category','id_product'),
KEY 'id_product' ('id_product')
)
ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS 'ps_product' (
'id_product' int(10) unsigned NOT NULL AUTO_INCREMENT,
'id_supplier' int(10) unsigned DEFAULT NULL,
'id_manufacturer' int(10) unsigned DEFAULT NULL,
'id_category_default' int(10) unsigned DEFAULT NULL,
'id_shop_default' int(10) unsigned NOT NULL DEFAULT '1',
'id_tax_rules_group' int(11) unsigned NOT NULL,
'on_sale' tinyint(1) unsigned NOT NULL DEFAULT '0',
'online_only' tinyint(1) unsigned NOT NULL DEFAULT '0',
'ean13' varchar(13) DEFAULT NULL,
'upc' varchar(12) DEFAULT NULL,
'ecotax' decimal(17,6) NOT NULL DEFAULT '0.000000',
'quantity' int(10) NOT NULL DEFAULT '0',
'minimal_quantity' int(10) unsigned NOT NULL DEFAULT '1',
'price' decimal(20,6) NOT NULL DEFAULT '0.000000',
'wholesale_price' decimal(20,6) NOT NULL DEFAULT '0.000000',
'unity' varchar(255) DEFAULT NULL,
'unit_price_ratio' decimal(20,6) NOT NULL DEFAULT '0.000000',
'additional_shipping_cost' decimal(20,2) NOT NULL DEFAULT '0.00',
'reference' varchar(32) DEFAULT NULL,
'supplier_reference' varchar(32) DEFAULT NULL,
'location' varchar(64) DEFAULT NULL,
'width' decimal(20,6) NOT NULL DEFAULT '0.000000',
'height' decimal(20,6) NOT NULL DEFAULT '0.000000',
'depth' decimal(20,6) NOT NULL DEFAULT '0.000000',
'weight' decimal(20,6) NOT NULL DEFAULT '0.000000',
'out_of_stock' int(10) unsigned NOT NULL DEFAULT '2',
'quantity_discount' tinyint(1) DEFAULT '0',
'customizable' tinyint(2) NOT NULL DEFAULT '0',
'uploadable_files' tinyint(4) NOT NULL DEFAULT '0',
'text_fields' tinyint(4) NOT NULL DEFAULT '0',
'active' tinyint(1) unsigned NOT NULL DEFAULT '0',
'redirect_type' enum('','404','301','302') NOT NULL DEFAULT '',
'id_product_redirected' int(10) unsigned NOT NULL DEFAULT '0',
'available_for_order' tinyint(1) NOT NULL DEFAULT '1',
'available_date' date NOT NULL,
'condition' enum('new','used','refurbished') NOT NULL DEFAULT 'new',
'show_price' tinyint(1) NOT NULL DEFAULT '1',
'indexed' tinyint(1) NOT NULL DEFAULT '0',
'visibility' enum('both','catalog','search','none') NOT NULL DEFAULT 'both',
'cache_is_pack' tinyint(1) NOT NULL DEFAULT '0',
'cache_has_attachments' tinyint(1) NOT NULL DEFAULT '0',
'is_virtual' tinyint(1) NOT NULL DEFAULT '0',
'cache_default_attribute' int(10) unsigned DEFAULT NULL,
'date_add' datetime NOT NULL,
'date_upd' datetime NOT NULL,
'advanced_stock_management' tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY ('id_product'),
KEY 'product_supplier' ('id_supplier'),
KEY 'product_manufacturer' ('id_manufacturer'),
KEY 'id_category_default' ('id_category_default'),
KEY 'indexed' ('indexed'),
KEY 'date_add' ('date_add')
)
ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=32 ;
Ce que je veux savoir c'est comment dans mon programme je dis que je lis les 100 premières lignes parmi toutes celles qui sont présentes dans le fichier et que ces 100 premières correspondent au prochain id_category de la table ps_category, et que par exemple les 50 prochaines lignes concernent l'id_category qui suit sachant que l'id_category est en auto-increment. J'arrive à lire tout le fichier au complet ce que je voudrais savoir c'est comment je peux tout lire mais morceaux par morceaux et dire que celui-ci a tel id et qu'un autre a tel id.