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 :

comment actualiser id


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 53
    Par défaut comment actualiser id
    voila mon probleme je voudrai savoir comment actualiser un id d'une table
    par si jai cette table :

    ID NOM
    1 dupond
    2 dumand

    puis que je supprime dupond et que je rajoute dugris, sa donne:

    ID nom
    3 dugris
    2 dumand

    donc comment faire pour avoir une actualiser de cette table (que l'id de dumand passe de 1 a 2 et dugris prenne l'id 2)

    merci d'avance de vos reponse (c'est pour un projet en cours)

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Il ne faut pas toucher aux id, quelle importance que ce soit 2, 1 ou 543454 du moment que c'est cohérent ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 53
    Par défaut
    justement le probleme viens de la
    je m'explique: le projet en question et de faire un site sur le service commercial avec des sections comme liste contact,modifier contact,supprimmer contact, ect ....

    ce probleme touche donc la partie modifier contact, et ce n'est pas tres pratique quand c'est ID 2 6 8 15 78 .... plutot que ID 1 2 3 4 5
    pour la recherche plus lisible et confortable

    en deux mot c'est sa

  4. #4
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Par défaut
    Bonjour,

    Et comment ferez vous en cas de crash base si vous remontez vos sauvegardes, vous n'aurez plus aucune concordance...

    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Vous comptez faire des recherches avec vos id techniques ?
    Je ne crois pas. Ca n'a donc aucune importance.

    Croyez-moi vous faites fausse route, laissez vos id à leur valeurs d'attribution, sinon vous courez droit dans les problèmes.

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 53
    Par défaut
    imagine que c'est une base de donnee pour une entreprise avec 2000 employer lister avec chacun un id
    on en supprime 1000 et pas forcement a la suite
    ensuite tu en rajoute 1000

    en terme de listing ce n'est vraiment pas pratique

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2003
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2003
    Messages : 87
    Par défaut
    Je pense que toutes les réponses sont justes.

    Si tu veux vraiment continuer dans ta voie, fais plutôt un UPDATE des autres colonnes au lieu de supprimer l'enregistrement. Mais ça n'est vraiment pas propre.

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 53
    Par défaut
    Que veux tu dire ?

  9. #9
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    l'id n'est qu'un identifiant qui n'est en principe jamais affiché par l'application qui utilise la BDD. Il ne sert que de clé primaire et en tant que clé étrangères dans les autres tables en association.

    Imaginons le scénario suivant...
    l'id 1 est celui du directeur commercial qui a certains accès privilégiés dans le système d'information.
    l'id 2 est celui d'un modeste mais non moins valeureux employé de production qui n'a normalement accès qu'aux données concernant sa machine.
    Le directeur commercial s'en va. On le supprime de la table (même ça c'est dangereux, on n'a plus accès à l'historique mais bon...).
    On réorganise les id et c'est maintenant le modeste mais non moins valeureux employé de production qui se retrouve avec les accès privilégiés sur les informations commerciales confidentielles. Et au passage, il n'a peut-être plus accès aux infos de sa machine et ne peut plus travailler !

    Maintenant tu fais ce que tu veux mais tu peux aussi te préparer à chercher un nouveau job si tu mets ça en oeuvre...
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  10. #10
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2003
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2003
    Messages : 87
    Par défaut
    1°) Que les réponses apportées par les autres membres sont justes
    2°) Qu'au lieu de faire "je supprime dupond et je rajoute dugris", faire "je modifie dupond en dugris".

    Mais au vu de ton explication, ça n'est pas clair.
    cf. :
    donc comment faire pour avoir une actualiser de cette table (que l'id de dumand passe de 1 a 2 (plutôt de 2 à 1 ?) et dugris prenne l'id 2)
    Et en te relisant, je pense m'être trompé sur la finalité.

    Prenons 5 lignes avec ID=1 à ID=5
    On a :

    ID Nom
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    1    Martin
    2    Louis
    3    Leo
    4    Simon
    5    Luke
    On supprime Leo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    1    Martin
    2    Louis
    4    Simon
    5    Luke
    Et on rajoute Pamela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    1    Martin
    2    Louis
    3    Simon
    4    Luke
    5    Pamela
    C'est bien ça ?

    Si c'est ça, je pense qu'il faut changer de raisonnement car tu vas passer ton temps à gérer cette table. Sans parler des index ni des performances.
    Tout ça pour une question esthétique.

  11. #11
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 53
    Par défaut
    "CinePhil " petite precision je suis etudiant en informatique, pas employes
    c juste le theme du projet a faire

    "matthieuq" oui c sa en faite je voulait faire sa car jobtien un message d'erreur sur ma page php et je n'arrive pas comprend ( mon probleme vien de la requete sql je je pense si quelque vois ou et le probleme ainsi que la solutions je sais plus ou cherche ^^') voici les code:

    "modifier contact.php":

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    <html>
        <head>
           <title>Service Commerciale</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
           <link rel="stylesheet" media="screen" type="text/css" title="commerce3" href="commerce3.css" />
        </head>
    <body >
    <div id="en_tete">
    <p class="gest1"><u><b>MODIFIER UN CONTACT</b></u></p><br>
    </div>
    <div id="menu" >
    <p class="gest2"><u><b> Menu: </u></b></p><p><br><a href="liste contact.php">liste des contact</a><br> <a href="ajout contact.php">ajouter un contact</a><br><a href="modifier contact.php">modifier un contact</a><br><a href="supprimer contact.php">supprimer un contact</a></p>
    </div>
     
    <table  border>
    <tr><TH bgcolor="#FFF168">ID</TH>
        <TH bgcolor="#FFF168">Nom</TH>
        <TH bgcolor="#FFF168">Prenom</TH>
        <TH bgcolor="#FFF168">Société</TH>
        <TH bgcolor="#FFF168">adresse</TH>
        <TH bgcolor="#FFF168">ville</TH>
        <TH bgcolor="#FFF168">pays</TH>
        <TH bgcolor="#FFF168">age</TH></tr>
    <?php
    mysql_connect("localhost", "root", ""); 
    mysql_select_db("contacts"); 
    $reponse = mysql_query("select * from contacts");
     
    while ($donnees = mysql_fetch_array($reponse) )
    {
    ?>  <td><?php echo $donnees['ID'];?></td>
        <td><?php echo $donnees['Nom'];?></td>
        <td><?php echo $donnees['Prenom'];?></td>
        <td><?php echo $donnees['Société'];?></td>
        <td><?php echo $donnees['adresse'];?></td>
        <td><?php echo $donnees['ville'];?></td>
        <td><?php echo $donnees['pays'];?></td>
        <td><?php echo $donnees['age'];?></td></tr>
    <?php
    }
    mysql_close(); 
    ?>
    </table>
    <form method="GET" action = "validation mod.php">
    <p> Quel est le contact a modifier ?<br>ID :<input type="TEXT" name="ID"></p>
    <table  border>
    <tr><TH bgcolor="#FFF168">Nom</TH>
        <TH bgcolor="#FFF168">Prenom</TH>
        <TH bgcolor="#FFF168">Société</TH>
        <TH bgcolor="#FFF168">adresse</TH></tr>
        <TD><input type="TEXT" name="Nom"></TD>
        <TD><input type="TEXT" name="Prenom"></TD>
        <TD><input type="TEXT" name="Société"></TD>
        <TD><input type="TEXT" name="adresse"></TD></tr>   
        <TH bgcolor="#FFF168">ville</TH>
        <TH bgcolor="#FFF168">pays</TH>
        <TH bgcolor="#FFF168">age</TH>
        <th></th></tr>        
        <TD><input type="TEXT" name="ville"></TD>
        <TD><input type="TEXT" name="pays"></TD>
        <TD><input type="TEXT" name="age"></TD>
        <td align ="center"><a href="validation mod.php"><input type="SUBMIT" value="VALIDER"></td></TR></TABLE>
        </form>
     
    <div id="footer">
    <p> Copyright G££KM@NI@<sup>tm</sup>,marque déposée</p>
    </div>
    </body>
    </html>
    et le fichier qui va avec "validation mod.php":

    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
    22
    23
    24
    25
    26
    27
    28
    <html>
        <head>
           <title>Service Commerciale</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
           <link rel="stylesheet" media="screen" type="text/css" title="commerce2" href="commerce2.css" />
        </head>
    <body>
     
    <?php
    $ID = $_GET['ID'];
    $Nom = $_GET['Nom'];
    $Prenom = $_GET['Prenom'];
    $Société = $_GET['Société'];
    $adresse = $_GET['adresse'];
    $ville = $_GET['ville'];
    $pays = $_GET['pays'];
    $age = $_GET['age'];
    mysql_connect("localhost", "root", ""); 
    mysql_select_db("contacts"); 
     
    mysql_queryl("UPDATE contacts SET Nom ='$Nom', Prenom = '$Prenom',Société ='$Société' adresse ='$adresse', ville ='$ville',pays ='$pays',age='$age' WHERE ID='$ID'");
    mysql_close(); 
    ?>
    <form action = "liste contact.php">
    <p align = "center"> Les modifications ont été faite avec succès!!<br><a href="liste contact.php"><input type="SUBMIT" value="Retour"></p>
    </form>
    </body>
    </html>
    et voici le message d'erreur que je recoit:

    "Fatal error: Call to undefined function mysql_queryl() in C:\xampp\htdocs\xampp\projet commerciale\validation mod.php on line 21"

  12. #12
    Membre Expert
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Par défaut
    Je ne pense pas que le thème soit de réordonner l'id technique d'une table si?
    Parce que ça n'a aucun intérêt dans le milieu du travail.

    A moins que ce que tu décrives ne soit pas un ID technique (qui sert de primary key par exemple)

  13. #13
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2003
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2003
    Messages : 87
    Par défaut
    Ce que nous disons tous c'est qu'il s'agit de la mauvaise façon de procéder.

    Je suis étonné que ton prof te donne ça à faire.
    à moins de le faire dans un but bien précis. Il doit avoir une idée derrière la tête.

  14. #14
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 53
    Par défaut
    pour l'id ce n'est pas le prof qui la demander

    jai mis le code ci dessus si quelque arrive a m'aider (avec ou sans id )

  15. #15
    Membre Expert
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Par défaut
    Utilise la balise code que ce soit plus lisible s'il te plait

    Ensuite ton erreur est une erreur PHP et non SQL
    tu as une faute de frappe : mysql_queryl doit être mysql_query (sans le l) il me semble

  16. #16
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 53
    Par défaut
    euh on fait comment la balise code ^^'
    j'ai trouve la balise ( ou plutot elle c'est mise toute seul)

  17. #17
    Membre Expert
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Par défaut
    le dièse juste au dessus de la zone de saisie de ton message

  18. #18
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    J'étais parti pour corriger les fautes mais j'y ai renoncé, il y en a trop !
    Tu es étudiant, tu auras probablement un rapport à rédiger sur ton projet alors habitue toi à écrire correctement !

    On t'a tous dit que vouloir modifier un identifiant, c'est MAL !
    C'est du temps perdu et de gros risques de perte de cohérence des données.

    Et comme c'est du MySQL si le moteur de BDD est MyISAM, tu ne peux même pas bénéficier des avantages des contraintes d'intégrité référentielles sur les clés étangères (ON DELETE et ON UPDATE). Le risque est alors encore plus grand.

    Déjà, si ta requête était plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT * 
    FROM contacts
    ORDER BY Nom, Prenom
    Tu aurais une liste triée.
    Inutile d'afficher l'ID qui n'a aucune valeur pour l'utilisateur de l'application.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  19. #19
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 53
    Par défaut
    MAIS QUEL BOULET J'AI FAIT

    merci jbrasselet j'ai du passer 3h a chercher le probleme alors que cetait qu'une faute de frappe

    oh dieu ai pitié de ton humble boulet

    ^^

    merci a ceux qui m'ont aussi aider

  20. #20
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2003
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2003
    Messages : 87
    Par défaut
    Si tu tiens absolument à avoir un numéro en face de chaque ligne (liste numérotée), crée un compteur en PHP et incrémente le à chaque passage de la boucle. Ainsi, tu ne touches pas à l'ID de la table. Et c'est de l'esthétique.

Discussions similaires

  1. comment actualiser une page web automatiquement ?
    Par safadev dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/09/2006, 00h34
  2. Comment actualiser le contenu d'un répertoire
    Par nbelg27 dans le forum Access
    Réponses: 9
    Dernier message: 28/04/2006, 11h22
  3. Comment actualiser l'image de curseur
    Par Xavier dans le forum C++Builder
    Réponses: 1
    Dernier message: 16/01/2006, 16h59
  4. [PHP] Comment actualiser une frame à partir d'une autre ?
    Par pekka77 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 28/10/2005, 13h03
  5. Réponses: 6
    Dernier message: 27/10/2005, 22h12

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