Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Installation
Installation Forum d'entraide sur les problèmes liés à l'installation de MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/05/2006, 11h49   #1
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 183
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2006
Messages : 183
Points : 29
Points : 29
Envoyer un message via MSN à snakejl
Par défaut Auto_increment comment le configurer

Voici ce que j'ai:
Code :
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 :
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
snakejl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 11h52   #2
Expert Confirmé
 
Avatar de KiLVaiDeN
 
Inscription : octobre 2003
Messages : 2 714
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 2 714
Points : 2 689
Points : 2 689
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
__________________
K
KiLVaiDeN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 11h56   #3
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
quel message d'erreur as tu quand tu essaie de mettre ta colonne en auto incrément ?
__________________
Rédacteur "éclectique" (XML, 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 (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 12h54   #4
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 183
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2006
Messages : 183
Points : 29
Points : 29
Envoyer un message via MSN à snakejl
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
snakejl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 13h01   #5
Expert Confirmé
 
Avatar de KiLVaiDeN
 
Inscription : octobre 2003
Messages : 2 714
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 2 714
Points : 2 689
Points : 2 689
Code :
ALTER TABLE `roulage` CHANGE `id` `id` MEDIUMINT( 3 ) UNSIGNED  NOT NULL AUTO_INCREMENT
__________________
K
KiLVaiDeN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 13h15   #6
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 183
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2006
Messages : 183
Points : 29
Points : 29
Envoyer un message via MSN à snakejl
Je fais exactement ce qui est marqué et sa me met comme erreur:
Code :
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 &#44338;e index&#37564;/code>
snakejl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 13h17   #7
Expert Confirmé
 
Avatar de KiLVaiDeN
 
Inscription : octobre 2003
Messages : 2 714
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 2 714
Points : 2 689
Points : 2 689
Met le en PRIMARY KEY en plus, comme je te l'ai dit plus haut.
__________________
K
KiLVaiDeN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 13h29   #8
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 183
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2006
Messages : 183
Points : 29
Points : 29
Envoyer un message via MSN à snakejl
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
snakejl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 13h33   #9
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 183
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2006
Messages : 183
Points : 29
Points : 29
Envoyer un message via MSN à snakejl
Sa vient surement du type et de la valeur je pense.
snakejl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 13h42   #10
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 183
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2006
Messages : 183
Points : 29
Points : 29
Envoyer un message via MSN à snakejl
Ou un problème dans le code mais la je ne sais vraiment pas.

merci de m'aider
snakejl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 13h45   #11
Expert Confirmé
 
Avatar de KiLVaiDeN
 
Inscription : octobre 2003
Messages : 2 714
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 2 714
Points : 2 689
Points : 2 689
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.
__________________
K
KiLVaiDeN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 13h53   #12
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 183
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2006
Messages : 183
Points : 29
Points : 29
Envoyer un message via MSN à 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
snakejl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 14h00   #13
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 183
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2006
Messages : 183
Points : 29
Points : 29
Envoyer un message via MSN à snakejl
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?
snakejl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 14h04   #14
Expert Confirmé
 
Avatar de KiLVaiDeN
 
Inscription : octobre 2003
Messages : 2 714
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 2 714
Points : 2 689
Points : 2 689
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+
__________________
K
KiLVaiDeN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 14h05   #15
Membre Expert
 
Avatar de Alexandre T
 
Inscription : mai 2002
Messages : 1 022
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : mai 2002
Messages : 1 022
Points : 1 121
Points : 1 121
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 T.

PHP5/MySQL5 Codes prêts à l'emploi
30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc...

Mes articles
Alexandre T est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 14h14   #16
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 183
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2006
Messages : 183
Points : 29
Points : 29
Envoyer un message via MSN à snakejl
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
snakejl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 14h45   #17
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 183
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2006
Messages : 183
Points : 29
Points : 29
Envoyer un message via MSN à snakejl
D'après certaines recherche je ne trouve pas comment affiché l'id dans mon tableau alors que tout le reste s'affiche.
snakejl est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h14.


 
 
 
 
Partenaires

Hébergement Web