Pour vous éclairer sur la chose voici quelques infos que j'ai trouvé sur le sujet (ici, la source des informations suivantes avec le cache de google) :

Chaque table d'une base de données est composée d'un ou plusieurs champs (les colonnes). Il existe plusieurs types de champs :

Les champs numériques

  • TINYINT : Entier très petit, 1 octet
  • SMALLINT : Entier petit, 2 octets
  • MEDIUMINT : Entier moyen, 3 octets
  • INT : Entier standard, 4 octets
  • BIGINT : Entier grand, 8 octets
  • FLOAT : Décimal de simple précision, 4 octets
  • DOUBLE, REAL : Décimal de double précision, 8 octets
  • DECIMAL, NUMERIC : Décimal sous forme de chaîne variable

Que signifient ces octets ?

Le nombre d'octets détermine la place que prend chaque champ et influe, donc, sur la grandeur des nombres que l'on peut y stocker.

Par exemple, une colonne de type TINYINT occupe 1 octet. Vous pouvez y stocker 2^8 (256) valeurs différentes. C'est à dire des nombres allant de -128 à +127 si on prend en compte le signe, ou de 0 à 255 si le nombre est non signé.

Une colonne de type MEDIUMINT occupe 3 octets (24 bits) et permet donc de stocker 2^24 (3*8), soit 16 777 216 valeurs différentes...

Bon à savoir

Les types entiers ont un paramètre optionnel permettant de définir le nombre de caractères utilisés pour représenter les valeurs de la colonne. Un champ de type TINYINT(2) permet donc de stocker des nombres entre -9 et 99. Si vous entrez un nombre plus important (154 par exemple), la valeur par défaut du paramètre sera alors utilisée (4 dans le cas de TINYINT). Bien entendu, il est impossible d'insérer des valeurs supérieures à 255 dans un champ de type TINYINT, le nombre serait alors tronqué sans provoquer de message d'erreur.

Voici un aperçu de ma base de donnée grâce au logiciel DBDesigner (utilisez la loupe pour l'agrandir).

Bug de débutant

Hier, j'ai résolu un petit bug de débutant sur la ToDo List que je pense tous les débutants n'ont pas encore fait mais vont faire (je dis cela pour me rassurer). J'ai remarqué que ma tâche supérieure "Site Internet" n'évoluait pas au fur et à mesure des changements. J'ai donc revu toutes les fonctions que j'utilisais et c'est grâce à Sylvain, une fois encore, que j'ai trouvé. En faisant un "echo $querystr" de la fonction update de ma table "tâche", j'ai compris qu'il ne pouvait executer cette fonction car il y avait à l'intérieur du champ "description" des slashs.

Et comme une débutante, j'ai eu la finesse d'avoir oublié de mettre des addslashes et des stripslashes devant ces champs qui pouvaient contenir des slashs... Bon, si vous avez pas suivi, dites vous que j'ai fais une bourde que je ne la referai plus j'espère après (j'ai dis la même chose pour mon accro de la voiture l'autre jour ...).