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

Installation MySQL Discussion :

Auto_increment comment le configurer


Sujet :

Installation MySQL

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Par défaut Auto_increment comment le configurer
    Voici ce que j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?
     
    $req_insert = "INSERT INTO `roulage` ( `id` , `nom` ,  `prenom` , `telephone` , `motif` ) VALUES ( '',  '$_POST[nom]' , '$_POST[prenom]' , '$_POST[telephone]' , '$_POST[motif]'  )";
     
     
    $resultat = mysql_query($req_insert) or die("Echec de l'insertion");
     
    if($resultat)
    	echo "La réservation de $_POST[nom] a bien été enregistré";
     
     
     
    ?>
    Dans ma base de donnée j'ai configuré l'id comme sa:
    id mediumint(3) UNSIGNED Non 0 (auto_increment impossible de le mettre)

    et ensuite pour l'affichage sa marche comme sa:
    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
    <?
    $resultat = mysql_query("select `id` , `nom` , `prenom` , `telephone` , `motif` from roulage");
    while($ligne= mysql_fetch_object($resultat))
    {
    	echo "<tr onclick=\"location.href='vehicule.php?num=$ligne->numemprunt'\" onmouseover=\"this.className='over'\" onmouseout=\"this.className='out'\" class=\"out\">
     
    	<td><font color='yellow'>$ligne->id</td></font>
    	<td><font color='yellow'>$ligne->nom</td></font>
    	<td><font color='yellow'>$ligne->prenom</td></font>
    	<td><font color='yellow'>$ligne->telephone</td></font>
    	<td><font color='yellow'>$ligne->motif</td></font>
     
    	</tr>";
    }
     
    ?>
    merci de m'aiguiller.
    Bon apetit

  2. #2
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Il faut que tu le mettes en not null et unique pour pouvoir activer l'auto increment me semble-t-il, et si ça ne marche pas, met la colonne id en primary key, selon ton modèle ça correspond bien on dirait

  3. #3
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    quel message d'erreur as tu quand tu essaie de mettre ta colonne en auto incrément ?
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Par défaut
    Si je laisse comme si dessus:Si je mé auto_increment +not null le message d'erreur est:

    requête SQL:

    ALTER TABLE `roulage` CHANGE `id` `id` MEDIUMINT( 3 ) UNSIGNED DEFAULT '0' NOT NULL AUTO_INCREMENT
    MySQL a répondu:

    #1067 - Valeur par d馡ut invalide pour 'id'

    Si je mais en unique+not null:

    requête SQL:

    SELECT *
    FROM roulage
    WHERE LIKE ''
    LIMIT 0 , 30
    MySQL a répondu:

    #1064 - Erreur de syntaxe pr賠de 'LIKE '' LIMIT 0, 30' ࠬa ligne 1

  5. #5
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE `roulage` CHANGE `id` `id` MEDIUMINT( 3 ) UNSIGNED  NOT NULL AUTO_INCREMENT

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Par défaut
    Je fais exactement ce qui est marqué et sa me met comme erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    requête SQL: 
     
    ALTER TABLE `roulage` CHANGE `id` `id` MEDIUMINT( 3 ) UNSIGNED NOT NULL AUTO_INCREMENT 
    MySQL a répondu: 
     
    #1075 - Un seul champ automatique est permis et il doit 괲e index銼/code>

  7. #7
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Met le en PRIMARY KEY en plus, comme je te l'ai dit plus haut.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Par défaut
    si je met en primary key:
    1ere erreur:
    requête SQL:

    ALTER TABLE `roulage` ADD PRIMARY KEY ( `id` )
    MySQL a répondu:

    #1062 - Duplicata du champ '0' pour la clef 1

    et ensuite on me dit de faire afficher et sa donne:
    requête SQL:

    SELECT *
    FROM roulage
    WHERE LIKE ''
    LIMIT 0 , 30
    MySQL a répondu:

    #1064 - Erreur de syntaxe pr賠de 'LIKE '' LIMIT 0, 30' ࠬa ligne 1

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Par défaut
    Sa vient surement du type et de la valeur je pense.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Par défaut
    Ou un problème dans le code mais la je ne sais vraiment pas.

    merci de m'aider

  11. #11
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Salut,

    Ajouter une colonne en primary key sur une colonne existante comprenant des doublons va faire planter ta requête.

    Pourquoi est-ce que ta table contient déjà des éléments ?

    Si tu n'as aucun problème d'intégrité référentielle ( par là je veux dire si la colonne "id" que tu cites n'est pas référencée dans une autre table ) tu peux la dropper, et la créer en auto_increment comme je te l'ai dit. Du coup, les numéros se mettrons automatiquement.

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Par défaut
    C'est bon j'ai tout rectifier comme tu ma dis et sa marche.

    Autre question:
    J'ai créé 3 utlisateurs:
    1jean
    2luc
    3pierre

    je supprime me 2 et j'aimerai que le 3 devienne 2

    Merci de votre aide

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Par défaut
    Par contre dans mon deuxieme code que j'ai mis en haut la ligne
    <td><font color='yellow'>$ligne->id</td></font>
    ne s'affiche pas contrairement au reste.
    Comment faut-il faire?

  14. #14
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Citation Envoyé par snakejl
    C'est bon j'ai tout rectifier comme tu ma dis et sa marche.

    Autre question:
    J'ai créé 3 utlisateurs:
    1jean
    2luc
    3pierre

    je supprime me 2 et j'aimerai que le 3 devienne 2

    Merci de votre aide
    Tu ne peux pas changer la valeur d'une clé primaire, c'est l'objectif de la clé primaire : avoir un numéro unique, afin de pouvoir accéder à cet enregistrement de manière unique.. Donc tu dois garder 3, même si tu supprimes 2, et le prochain enregistrement sera 4.

    Sinon pour ton autre question, c'est bizarre, dans ton select ton champ s'appelle bien id ?

    A+

  15. #15
    Membre Expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Par défaut
    Citation Envoyé par snakejl
    je supprime me 2 et j'aimerai que le 3 devienne 2
    Cela ne sert à rien. En SQL, le but est de stocker des données, pas que le tableau soit "beau". Votre clef primaire, clef informatique, n'a pas à être une suite parfaite de nombre. Il peut y avoir des trous. En effet, si vous changez de valeur pour la clef primaire en la passant de 3 à 2 , il va falloir faire de même sur tous les enregistrements des autres tables qui y faisaient référence. Cela va entraîner des calculs, et donc des ralentissements totalement inutiles.
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Par défaut
    D'accord j'ai compris ta raison.
    Mais j'aimerai effacé les donnés de la personne via mon id mais l'id ne s'affiche pas dans mon fichier regarde plus haut.
    C'est bizare tout s'affiche sauf l'id, y a t-il une solution.
    Merci du conseil

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Par défaut
    D'après certaines recherche je ne trouve pas comment affiché l'id dans mon tableau alors que tout le reste s'affiche.

Discussions similaires

  1. SL4J - Comment le configurer ?
    Par farfou dans le forum Logging
    Réponses: 0
    Dernier message: 07/01/2009, 12h52
  2. [Postfix] Comment le configurer ?
    Par julienjbrun dans le forum Serveurs (Apache, IIS,...)
    Réponses: 4
    Dernier message: 19/05/2008, 17h45
  3. ComboBox Comment les configurer?
    Par parp1 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 24/05/2007, 12h42
  4. comment bien configurer SQL SERVER 2005
    Par Phiss dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 01/09/2006, 16h25
  5. [WIFI] Comment bien configurer un reseau sans fil?
    Par Dnx dans le forum Développement
    Réponses: 1
    Dernier message: 19/01/2005, 08h50

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