Jump to content

HELP Gros problème : les adresses ne s'enregistrent pas !


Recommended Posts

Version de PrestaShop 1.6.1.11

Version de PHP 7.0.6

Version de MySQL 5.5.53-0+deb7u1-log

Moteur MySQL InnoDB

Connecteur MySQL DbPDO

 

 

Bonjour à toutes et à tous,

 

Mon problème : les adresses des clients ne veulent pas s'enregistrer correctement dans la base de données, enfin si, elle s'enregistrent, mais avec comme ID 0 à chaque nouvelle adresse.

 

J'ai récupéré la table ps_address d'un site que je refais entièrement (MAJ Presta, changement de thème, etc), du coup je suis reparti de zéro em réimportant les données clients et produits par mySQL, mais je pense que j'ai du merdouiller quelque part lors de l'export import, car maintenant toutes les nouvelles adresses sont impactées par ce problème.

 

Pourquoi l'ID reste bloqué sur zéro à chaque fois ? 

Quelqu'un a t-il déjà eu le même souci ?

 

 

Pour info la structure de la table : 

 

CREATE TABLE `ps_address` (
  `id_address` int(10) unsigned NOT NULL,
  `id_country` int(10) unsigned NOT NULL,
  `id_state` int(10) unsigned DEFAULT NULL,
  `id_customer` int(10) unsigned NOT NULL DEFAULT '0',
  `id_manufacturer` int(10) unsigned NOT NULL DEFAULT '0',
  `id_supplier` int(10) unsigned NOT NULL DEFAULT '0',
  `id_warehouse` int(10) unsigned NOT NULL DEFAULT '0',
  `alias` varchar(32) NOT NULL,
  `company` varchar(64) DEFAULT NULL,
  `lastname` varchar(32) NOT NULL,
  `firstname` varchar(32) NOT NULL,
  `address1` varchar(128) NOT NULL,
  `address2` varchar(128) DEFAULT NULL,
  `postcode` varchar(12) DEFAULT NULL,
  `city` varchar(64) NOT NULL,
  `other` text,
  `phone` varchar(32) DEFAULT NULL,
  `phone_mobile` varchar(32) DEFAULT NULL,
  `vat_number` varchar(32) DEFAULT NULL,
  `dni` varchar(16) DEFAULT NULL,
  `date_add` datetime NOT NULL,
  `date_upd` datetime NOT NULL,
  `active` tinyint(1) unsigned NOT NULL DEFAULT '1',
  `deleted` tinyint(1) unsigned NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 
:(  :(  :(
 
Merci d'avance !!
Link to comment
Share on other sites

Bonjour et merci pour votre réponse,

 

 

dans ma base j'ai ça : 

 

--
-- AUTO_INCREMENT pour la table `ps_address`
--
ALTER TABLE `ps_address`
  MODIFY `id_address` int(10) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=18308;
 
Je suis une bille en mySQL, "AUTO_INCREMENT=18308" ça veut dire que le prochain ID commencera à 18308 c'est ça ? Si c'est ça est-ce normal d'avoir "AUTO_INCREMENT," juste avant du coup ?
 
Egalement dans les options, vérifier que la valeur de l'auto increment est bonne...

 

 

 
Quelles options et où les trouver ? Pouvez-vous m'éclaircir d'avantage ? :)  
Link to comment
Share on other sites

Exécutez cette commande dans votre sql:

 

ALTER TABLE `ps_address`
  MODIFY `id_address` int(10) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=1
 
Et vérifiez que le champ id_address est bien passé en autoincrément dans la structure de la table
Link to comment
Share on other sites

Ca donne une erreur : 

MySQL a répondu: dot.gif

#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key 

J'ai avancé depuis, j'ai trouvé la colonne "Extra" dans la structure de la table, et effectivement il n'y a rien dedans. J'ai vérifié sur un autre prestashop qui fonctionne bien, dans cette colonne il y a bien "AUTO_INCREMENT".

 

Comment faire pour ajouter "AUTO_INCREMENT" sans erreur ?

Link to comment
Share on other sites

Résolu !!  :)  :)
 
J'avais 3 adresses dans ma table, avec un ID à 0, c'est ça qui bloquait...
Je les ai supprimé via mySQL et j'ai réimporté la table ps_address en copiant la structure depuis la base d'un autre Prestashop qui fonctionne bien, à savoir :

 

CREATE TABLE IF NOT EXISTS `ps_address` (
  `id_address` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `id_country` int(10) unsigned NOT NULL,
  `id_state` int(10) unsigned DEFAULT NULL,
  `id_customer` int(10) unsigned NOT NULL DEFAULT '0',
  `id_manufacturer` int(10) unsigned NOT NULL DEFAULT '0',
  `id_supplier` int(10) unsigned NOT NULL DEFAULT '0',
  `id_warehouse` int(10) unsigned NOT NULL DEFAULT '0',
  `alias` varchar(32) NOT NULL,
  `company` varchar(64) DEFAULT NULL,
  `lastname` varchar(32) NOT NULL,
  `firstname` varchar(32) NOT NULL,
  `address1` varchar(128) NOT NULL,
  `address2` varchar(128) DEFAULT NULL,
  `postcode` varchar(12) DEFAULT NULL,
  `city` varchar(64) NOT NULL,
  `other` text,
  `phone` varchar(32) DEFAULT NULL,
  `phone_mobile` varchar(32) DEFAULT NULL,
  `vat_number` varchar(32) DEFAULT NULL,
  `dni` varchar(16) DEFAULT NULL,
  `date_add` datetime NOT NULL,
  `date_upd` datetime NOT NULL,
  `active` tinyint(1) unsigned NOT NULL DEFAULT '1',
  `deleted` tinyint(1) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`id_address`),
  KEY `address_customer` (`id_customer`),
  KEY `id_country` (`id_country`),
  KEY `id_state` (`id_state`),
  KEY `id_manufacturer` (`id_manufacturer`),
  KEY `id_supplier` (`id_supplier`),
  KEY `id_warehouse` (`id_warehouse`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=18308 ;
 
 
Merci pour votre aide, ça m'a permis de trouver !!
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...