Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 15/11/2006, 15h49   #1
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
Par défaut [Conception] Incrementation automatique fonctionne pas je le souhaite

Bonjour,
J'ai un petit souci. Quand j'ajoute de nouvelle donnée dans ma base, le champs "id" est automatiquement incrémenté. Jusqu'a la, tout est ok.

Si j'efface la ligne 5, et qu'apres j'ajoute de nouvelle information, il va lui donné l'id 6. J'aimeraiqu'il lui donne l'id 5, vu qu'elle existe plus.

Y a t il la possibilité de purgé les information des documents effacé pour une table uniquement (ou pour toute la base)?

Merci
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2006, 15h54   #2
Membre chevronné
 
Avatar de Dia_FR
 
Homme Aurélien
Développeur Web
Inscription : avril 2006
Messages : 510
Détails du profil
Informations personnelles :
Nom : Homme Aurélien
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 510
Points : 643
Points : 643


http://www.developpez.net/forums/sho...ht=incr%E9ment

http://www.developpez.net/forums/sho...ht=incr%E9ment

j'te mets pas tous les liens, tu vas dans recherche, tu tapes "incrément" et tu choisis PHP->SGBD
__________________
Dia [ Page DVP ] [ Blog ] [ Site pro ]
Dia_FR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2006, 16h55   #3
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
Ben en fait, j'ai fait comme ca:
Code :
1
2
3
4
5
6
7
8
 
		$select_incre = "SELECT * FROM table";
		$query_incre = mysql_query($select_incre) or die('Erreur SQL : <br>'.$select_incre.'<br>'.mysql_error());
		$nb_incre = mysql_num_rows($query_incre);
		$nb_incre++;
 
 
[suite du code]
Code :
1
2
3
4
 
$sql_insert="INSERT INTO table('id')VALUES('$nb_incre');
 
[suite du code]
Ca tiens la route non?

J'ai enlevé l'auto incrementation de mon chamo "id"
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 11h57   #4
Invité régulier
 
Inscription : mai 2005
Messages : 31
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 31
Points : 8
Points : 8
C'est dangereux comme méthode : si tu as deux utilisateurs connectés qui effectuent ce même appel, tu risques d'avoir des conflits.

De plus, à chaque fois que tu voudras récupérer une nouvelle clé primaire, tu vas devoir requêter en base.

Si tu veux utiliser la même pk, tu ne peux pas faire un update au lieu d'un delete puis d'un insert ?
outlawz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 12h13   #5
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
Oui merci, j'ai testé cette solution et en effet elle n'est pas favorable par le simple fait c'est que si tu efface une entrée, et que tu en rajoute une, y aura un conflit avec la derniere ligne.

Mais puis je purger ce que la table garde en mémoire?
Comment puis-je faire pour qu'il donne, à une nouvelle entrée l'id d'une ligne effacée ou un id qui n'existe pas?
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 12h29   #6
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Quel est l'intéret ?
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 15h37   #7
Invité régulier
 
Inscription : mai 2005
Messages : 31
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 31
Points : 8
Points : 8
Idem, je ne comprends pas l'intérêt : l'autoincrement se charge de gérer automatiquement les conflits entre pk, et te donnera toujours une pk unique.
outlawz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 16h34   #8
Membre chevronné
 
Avatar de Dia_FR
 
Homme Aurélien
Développeur Web
Inscription : avril 2006
Messages : 510
Détails du profil
Informations personnelles :
Nom : Homme Aurélien
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 510
Points : 643
Points : 643
il veut pas avoir de "trous" dans l'incrément, même s'il vire un enregistrement

c'est assez moche comme technique

au lieu de gérer l'incrément de manière bancale à l'enregistrement, laisse l'auto incrément et quand tu veux afficher/traiter les données de ta BD, tu testes si l'id que tu demandes existe
__________________
Dia [ Page DVP ] [ Blog ] [ Site pro ]
Dia_FR 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 07h09.


 
 
 
 
Partenaires

Hébergement Web