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 :

numeroter l'ID par order


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 67
    Par défaut numeroter l'ID par order
    Bonjour,

    Si j'ai une table peson (ID,Nom, Prénom)
    et j'ai ajouter des information par hasard:

    ID Nom Prénom
    ------------------
    1 aaa aaa
    2 aaa aaa
    3 aaa aaa
    4 aaa aaa

    Si je supprimer toutes les information et je veux ajouter des nouvelles, dans cette cas il ajoute automatiquement des ID qui commencent par 5,
    la question est comment je peut rajouter des ID qui commencent par 1
    et si je supprime la personne avec un ID=2, comment je peux rajouter une autre personne qui doit prendre le ID=2.

    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,
    Quand tu vas supprimer tous les enregistrements, utilises truncate mais pas delete.
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    TRUNCATE TABLE nomDeLaTable;

    A+

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 67
    Par défaut
    Merci, Et si je supprime un ligne de donne, comment le fait ?
    ca veut dire, faire Delete from table... et apres je fais insert into...


    Citation Envoyé par andry.aime Voir le message
    Bonjour,
    Quand tu vas supprimer tous les enregistrements, utilises truncate mais pas delete.
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    TRUNCATE TABLE nomDeLaTable;

    A+

  4. #4
    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
    Salut

    Théoriquement, il n'y a pas lieu de se focaliser sur cette donnée, c'est un auto_inrement, et il est a pour garantir l'unicité de chaque ligne, c'est donc normal est logique que MySQL ne réutilise pas une donnée qui a été déjà utilisée.
    Le faire c'est prendre le risque d'avoir une Bdd corrompue.
    On s'en fiche de leur valeur, ou du moins, il y a pas lieu d'y toucher. Sauf si on sait ce qu'on fait, évidemment.

    Le seul cas, c'est celui qu'évoque andry.aime, c'est lorsqu'on souhaite repartir à 0. Mais là faudra faire gaffe aux tables qui sont liées au même ID, sinon, ça va partir en sucette.

    Si tu veux faire des classement, faut le faire sur d'autres champs :
    SELECT machin FROM table ORDER BY nom
    ou SELECT machin FROM table ORDER BY prenom
    ou encore SELECT machin FROM table ORDER BY nom, prenom
    etc ...

    Si cela te conviens pas et que tu souhaite ton propre classement, suffit de créer un nouveau champ pour ça, genre "ordre". Suffit d'enregistrer une incrémentation. (1, 2, 3, etc ...)
    Ce qui donne : SELECT machin FROM table ORDER BY ordre ... et hop, tout sera classé comme on veut.
    C'est simple, efficace, et on ne touche pas à une donnée propre au fonctionnement de la Bdd.

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 67
    Par défaut
    D'accord d'accord , Merci pour votre explication détaillé.

    Une question concernant de supprimer les information dans les tables liées
    au même ID est ce qu'il faut le faire manuellement (suppression dans chaque table) ou bien il y a une autre méthode qui supprime tous les info. reliées ?
    Excuse moi de mes question mais pour en savoir et avoir l'expérience.

    Merci d'avance

  6. #6
    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
    En 1er, je remarque que tu prends l'habitude de citer l'intégralité du post précédent (bien souvent dans d'autre post).
    Je t'assure, ça ne sert à rien, sinon qu'alourdir le forum pour rien, et en plusde rallonger tes post.
    Je sais ce que j'ai écrit, non ?
    Ca y est juste avant. A quoi bon tout reprendre ?

    Au mieux, on reprend, on cite une toute petite partie du post, une phrase, juste pour améliorer/donner du sens ce qu'on dit par la suite.

    C'était une petite parenthèse


    Une question concernant de supprimer les information dans les tables liées
    au même ID est ce qu'il faut le faire manuellement (suppression dans chaque table) ou bien il y a une autre méthode qui supprime tous les info. reliées ?
    Théoriquement il faut le faire manuellement. C'est la solution la plus simple.(et de loin même).
    Il ne faudra pas oublier de le faire cependant, sinon la Bdd ne serait plus intègre.

    Mais tout ceci dépend en 1er du moteur MySQL (ou du type de Bdd), et j'en citerais que 2 :
    MyISAM : La suppression manuelle est la seule solution.

    InnoDB : On peu le faire car ce moteur offre le coté Relationnel (SGBD-R), mais ça demande de savoir quels types d'instructions qu'il faut rajouter lors de la création des tables.
    Il faut entre autre indiquer les références/relations entre les tables/champs, et indiquer les suppression/misent à jours en cascades qu'il sera à faire.
    Mais ici il faut vraiment savoir ce qu'on fait, et leur impactent.
    C'est un peu plus compliqué que la 1ère solution.

Discussions similaires

  1. Tri par ORDER BY et INDEX sur les champs triés
    Par grandelo dans le forum Requêtes
    Réponses: 6
    Dernier message: 28/09/2010, 11h55
  2. Réponses: 7
    Dernier message: 28/03/2007, 13h57
  3. Numeroter les tables par rapport aux contraintes
    Par nicassy dans le forum Outils
    Réponses: 10
    Dernier message: 02/02/2007, 11h39
  4. Trier les lignes de ma ReadSheet par order decroissant de ma col 2 ?
    Par antoine.dandois dans le forum Général VBA
    Réponses: 2
    Dernier message: 17/01/2007, 19h40
  5. où trouver ordre utilisé par order by
    Par mussara dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 02/09/2005, 17h35

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