THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


bonjour,
Quelle est ta version de Thelia ?
As tu fait une mise à jour sur ce Thelia ?
Peux tu me donner la structure de ta table address ? (export mysql dans phpmyadmin par exemple).


Développeur Web chez OpenStudio
Thelia Module, Thelia School, My GitHub, My Twitter

Offline


bonjour,
C'est la 2.1.4.3, la toute dernière version en fait. et je l'ai installé tel quel, donc pas de mise à jour effectué.
voici l'export de la table "addresse" :
-- phpMyAdmin SQL Dump
--
version 4.1.11
-- http://www.phpmyadmin.net
--
--
Client :  localhost
--
Généré le :  Jeu 02 Juillet 2015 à 17:29
--
Version du serveur :  5.6.16
--
Version de PHP :  5.5.10

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";

SET time_zone = "+00:00";


/*!40101
SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101
SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101
SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101
SET NAMES utf8 */;

--
-- Base de données :  `xxxxxxxx`
--

-- --------------------------------------------------------

--
--
Structure de la table `address`
--

CREATE TABLE IF NOT EXISTS `address` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `label` varchar(255) DEFAULT NULL,
  `customer_id` int(11) NOT NULL,
  `title_id` int(11) NOT NULL,
  `company` varchar(255) DEFAULT NULL,
  `firstname` varchar(255) NOT NULL,
  `lastname` varchar(255) NOT NULL,
  `address1` varchar(255) NOT NULL,
  `address2` varchar(255) NOT NULL,
  `address3` varchar(255) NOT NULL,
  `zipcode` varchar(10) NOT NULL,
  `city` varchar(255) NOT NULL,
  `country_id` int(11) NOT NULL,
  `phone` varchar(20) DEFAULT NULL,
  `cellphone` varchar(20) DEFAULT NULL,
  `is_default` tinyint(4) DEFAULT '0',
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_address_customer_id` (`customer_id`),
  KEY `idx_address_customer_title_id` (`title_id`),
  KEY `idx_address_country_id` (`country_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

--
-- Contraintes pour les tables exportées
--

--
-- Contraintes pour la table `address`
--
ALTER TABLE `address`
  ADD CONSTRAINT `fk_address_customer_id` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_address_customer_title_id` FOREIGN KEY (`title_id`) REFERENCES `customer_title` (`id`),
  ADD CONSTRAINT `fk_address_country_id` FOREIGN KEY (`country_id`) REFERENCES `country` (`id`);

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

merci d'avance pour ton aide
vince

Offline


alors pour ceux que ça peut intéresser, voici ce que j'ai pu trouver et qui répond (enfin!) au problème.
la base de données utilise des Restrictions qui, si le "sql mode" est mal configuré sur votre serveur, peut poser problème pour l'insertion dans la bdd ayant des Fk (restrictions), comme créer un client, ou un article. certains champs qui ne sont pas rempli craient alors le message d'erreur d'insertion (voir plus haut).
donc, il faut avoir le "sql mode" configuré en "NO_ENGINE_SUBSTITUTION" uniquement, et pas "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION".
le "STRICT_TRANS_TABLES" créant un bug quand une valeur par défaut défini en "Not Null" sur un champ de la table n'est pas renseigné (rempli).
donc après sollicitation cordiale auprès de mon hébergeur Nfrance, on m'a changer la valeur du sql mode en "NO_ENGINE_SUBSTITUTION" et maintenant tout marche parfaitement.
ce qui m'a mis la puce à l'oreille, c'est quand j'ai modifié les champs Not null avec une valeur défini que mes requêtes passaient enfin (création d'un client par exemple).
Le souci c'est que le problème se retrouverait sur toutes les tables ayant ce même type de champs, donc il fallait trouver la solution approprié.
merci au site GitHub qui m'a permis de trouver la solution!
voici le lien:
https://github.com/thelia/thelia

en espérant que ça aidera certain.
vince smile