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 :

[Conception] Administration pages & update


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 221
    Par défaut [Conception] Administration pages & update
    Bonsoir,

    Je suis en train de faire mes pages d'administration avec possibilité de delete et update de champs et lignes dans mes tables, le delete, c'est pas compliqué

    L'update quand à lui me pose un petit problème, je ne sais pas comment récupérer l'emplacement de la ligne à modifier, mes tables contiennent toutes un id, je pourrais donc me servir ce cette id pour savoir la position de la ligne, mais si je désire également updater ce champ id, je n'ai plus rien sur quoi m'appuyer dans ma table, comment faire pour récupérer le numéro de la ligne dans ma table ?

    Une seconde question, par exemple sur 10 lignes dans ma table et un id en auto-increment, je supprime la ligne 7, je me retrouve donc avec un trou, donc ce que je souhaite, c'est pouvoir réinitialiser la colonne des id, et donc au lieu d'avoir 1,2,3,4,5,6,8,9,10 après delete d'une ligne, j'obtienne donc après initialisation 1,2,3,4,5,6,7,8,9.

    Merci

  2. #2
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    C'est une très mauvaise idée de modifier un champ qui te sert de clé. Trouve un petit cours sur les bases de données avant d'aller plus loin...

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 221
    Par défaut
    Bah pourquoi ce serait une mauvaise idée ?

    Admettons un livre d'or ou un forum, un crétin passe par là et y laisse un message insultant, je dois bien effacer ce message, donc l'id qui va avec, je vois pas du tout où est le problème

  4. #4
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par spirou
    Bah pourquoi ce serait une mauvaise idée ?

    Admettons un livre d'or ou un forum, un crétin passe par là et y laisse un message insultant, je dois bien effacer ce message, donc l'id qui va avec, je vois pas du tout où est le problème
    Bien sûr ! Tu supprimes toute l'entrée, mais tu ne modifies pas l'id d'une entrée que tu laisses dans la base.

    Par ailleurs, dans ton exemple, l'id n'a pas véritablement de signification, donc il importe peu d'avoir des "trous" dans la séquence.

  5. #5
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut
    salut
    Je ne pense pas que cela pose de problème de supprimer l'enregistrement.

    Par contre si tu fais un update, tu n'as pas besoin de modifier l'id.

    Par exemple, si quelqu'un met son nom, son prenom et son email dans une base et que son enregistrement est identifié par un id.
    Tu prévoir un update si il veut changer son email. Tu changes le champs email mais pas le champ id.

    Julien

  6. #6
    Membre chevronné Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Par défaut
    Bonsoir Spirou,

    Je rejoins totalement l'idée d'Eusebius, il est inutile et dangereux de manipuler les clés de tes enregistrements surtout si celles-ci te servent à faire des liens avec d'autres tables.
    Pourquoi veux-tu qu'il n'y ait pas de trous dans ta numérotation ? Pour compter le nombre d'enregistrements de ta table (mysql_num_rows() ou équivalent est ton amie)? Pour savoir quel est le ènième enregistrement (while et un compteur sont tes amis)? ...
    Franchement, je ne vois pas de raison pour 'boucher' les trous !

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 221
    Par défaut
    Bon, ben d'accord, je vais suivre vos conseils

    Par contre, pour la réinitialisation, cela m'intéresserait si cela est possible, car j'ai (comme sur la plupart des sites) des pages affichant des news du site page par page, et j'ai remarqué que si je supprimait une ligne dans la table autre que la dernière, mon affichage déconnait (normal, c'est moi qui l'ai fait ).

    Merci à tous

  8. #8
    Membre Expert Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Par défaut
    Citation Envoyé par papyphp
    Pour savoir quel est le ènième enregistrement (while et un compteur sont tes amis)?
    On va dire que je pinaille, mais le "énième enregistrement" n'a pas de sens quand on utilise une base de donnée relationnelle.

    En effet, le stockage des informations n'est pas forcément "ordonné". Certains SGBDR, par exemple, ne suppriment pas physiquement les données sur une instruction DELETE, mais marquent la ligne comme ne comportant pas de données.
    On peut ainsi se retrouver avec ça, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    matable
    --------
    id ;    colonne1 ;    colonne2...
    ----    ----------    -----------
    1 ;    'pouet' ;    0...
    2 ;    'coucou' ;    1...
    3 ;    'et boum !' ;    1...
    4 ;    'et paf...' ;    1...
    5 ;    'le chien ;    0...
    
    DELETE FROM matable WHERE id = 3;
    
    matable
    --------
    id ;    colonne1 ;    colonne2...
    ----    ----------    -----------
    1 ;    'pouet' ;    0...
    2 ;    'coucou' ;    1...
    3 ;    'et boum !' ;    1...
    4 ;    'et paf...' ;    1...
    5 ;    'le chien ;    0...
    La ligne en rouge signifie que la donnée a été supprimée (logiquement uniquement, pas physiquement).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    INSERT INTO matable (colonne1,colonne2) VALUES ('lol',0);
     
    matable
    --------
    id ;    colonne1 ;    colonne2...
    ----    ----------    -----------
    1 ;    'pouet' ;    0...
    2 ;    'coucou' ;    1...
    6 ;    'lol' ;    1...
    4 ;    'et paf...' ; 0...
    5 ;    'le chien ;    0...
    Ici, on voit que la donnée a été insérée dans un emplacement libre, qui peut être un emplacement qui était occupé par une donnée précédemment supprimée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.0] [Conception] Une page pour tous les traitements ?
    Par keaton7 dans le forum Langage
    Réponses: 15
    Dernier message: 25/04/2009, 14h02
  2. [HTML] Demande de conseils pour conception de page HTML
    Par nanonerie dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 17/10/2008, 15h05
  3. [Conception] Personnalisation page WEB par les utilisateurs ?!
    Par coboy dans le forum Webdesign & Ergonomie
    Réponses: 1
    Dernier message: 23/05/2008, 16h20
  4. [Conception] Problème de requete update
    Par Jiraiya42 dans le forum PHP & Base de données
    Réponses: 29
    Dernier message: 10/10/2006, 17h06
  5. [Conception] Affichage page par page
    Par Angelik dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 26/08/2006, 00h30

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