IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Renseignement sur MySql


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Par défaut Renseignement sur MySql
    Bonjour,

    Il y a un truc que je ne comprend pas avec ma table MySQL

    Quand j'écrit sur ma table
    Exemple

    id - Article
    ----------
    1 - slip
    2 - chausette
    3 - banane
    et si je supprime 3 - banane et rajoute une entrée a article "pattes" il vas me faire :

    id - Article
    ----------
    1 - slip
    2 - chausette
    4 - Pattes
    Pourquoi m'écrit il pas a la suite, y a un trou ???, pourtant ma table MySql et composé comme suite:

    STRUCTURE
    ------------
    Champ : id
    Type : int(2)
    Interclassement : latin1_swedish_ci
    Attributs :
    Null : Non
    default :
    Extra : auto_increment

    INDEX
    ------
    Nom de l'index : id
    Type : index
    Cardinalité : 3
    Champ : id
    Du coup je demande si c'est moi qui a merdé au niveau de la table.
    Donc ma question est comment faire pour qu'il ecrit a la suite des N° id même avec uns suppression comme je vient de vous faire voir au dessus.

    Merci

  2. #2
    Membre expérimenté

    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 130
    Par défaut
    Salut,

    C'est tout à fait normal, tu as l'auto_increment sur l'id. C'est à dire qu'à chaque nouvelle entré ton id augmente de 1.

    Donc quand tu as crée Banane l'id est 3. Tu le supprime mais l'id ne diminue pas de 1. Ton prochain élément aura donc un id de 4 !


    Je sais pas si je suis clair ^^

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Par défaut
    bonsoir,

    Ok c'est claire, mais comment diminuer de 1 alors ? quel sont les possibilités
    Si je comprend bien Mysql ne c'est par le faire de lui même.

    Merci

  4. #4
    Membre expérimenté

    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 130
    Par défaut
    Si mysql peut le faire via phpmyadmin mais pas en php à ma connaissance.

    Vous choisissez la table que vous voulez, cliquez sur opération en haut puis vous pouvez modifier l'auto incrément.

  5. #5
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    C'est normal, c'est tout l'intérêt du autoincrement, est il n'est (théoriquement) pas souhaitable de redéfinir cet identifiant, sauf si on sait totalement les conséquences qu'il pourrait avoir. Ceci demande de bien connaitre l'ensemble de sa Bdd, et des données qui s'y trouvent.

    Pour cet autoincrement, MySQL garantie à 100% que le nouvel ID sera unique, du coup, elle ne réutilise pas l'ID qui vient d'être supprimé.
    Trop risqué, cet ID (le 3) pourrait très bien ce trouver comme clé étrangère dans une autre table. Dans ce cas, la Bdd ne serait plus intègre, et le code Php basé sur ces données pourraient partir en vrillent. Bug en somme.

    A coté de ça, faut ce dire qu'on s'en fiche un peu, voir totalement (normalement), car ces IDs ne sont là que pour le fonctionnement de la Bdd, pour faire des jointure entre les tables.
    Ce n'est que purement fonctionnel. Il ne faut pas se focaliser la dessus.



    A coté de ça, s'il restait une peau d'banane, c'est p't'être pour ça, non ?
    Fait gaffe, si les slips ne sont pas propre, MySQL n'en voudra pas non plus.


  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Par défaut
    Bonsoir

    Ok RunCodePhp, J'ai lu qu'une bdd vas jusqu'a 50.000 personnes, pour moi l'objectif de la bd et de fait une liste de commission dont les personnes peuvent supprimer les articles avec des cass a cocher et ajouter de nouveau article dans un champ texte qu'il peuvent imprimer par la suite.
    Si les gens n'arret pas de modifier et supprimer des articles dans la table,
    sa vas bloqué à 50.000 em du N° ID.
    Vue que ma table ne contient que id et Article j'utilise l'id par requête pour y supprimer des articles avec des case a cocher sur un tableau html , alors a l'id 50.000 que ce passera t'il ?

    Voila une question qui me préocupe du coup.
    Comment font les autre en general.

    Merci.

Discussions similaires

  1. renseignement sur mysql
    Par manue85 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 09/11/2005, 17h29
  2. Renseignements sur TChart
    Par petitours dans le forum C++Builder
    Réponses: 4
    Dernier message: 29/06/2004, 12h48
  3. Renseignement sur TPU Motorola 68332
    Par N*E*R*D dans le forum Autres architectures
    Réponses: 7
    Dernier message: 06/04/2004, 09h57
  4. driver sur mySql
    Par sampq dans le forum Installation
    Réponses: 8
    Dernier message: 19/08/2003, 09h15
  5. possible sur MySQL 4.0 ?
    Par djforest dans le forum Langage SQL
    Réponses: 7
    Dernier message: 06/06/2003, 09h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo