PB de clef primaire => doublons !!

Résolu
guispider -  
Alexsimps Messages postés 199 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voici mon problème simple mais tordant à la réflexion.

Je dévelope en php avec une bdd Access, j'ai une clef primaire nommé Numéro_arret_chaine.

Le pb est que j'insère des arret chaine via un formulaire php qui incremente de 1 le numéro mais lorsque j'en supprime un et que je veux en refaire un après il y a doublon !!

comment résoudre se problème ?

Merci d'avance
A voir également:

12 réponses

Alexsimps Messages postés 199 Date d'inscription   Statut Membre Dernière intervention   13
 
Salut,

Lorsque tu recréé ton arret_chaine, quel est la valeur de ton compteur ?
Il doit probablement redemarrer a 1, tu devrais allé lire le dernier enregistrement de la table pour connaitre le n° a utiliser (mais ma solutiion ne bouche pas les trous, il faut gratter un peu plus pour ça ^^).

En esperant repondre a ta question.
0
guispider
 
Ouai faut que je lise la dernière valeur, mais je bug dans la requete !
0
Alexsimps Messages postés 199 Date d'inscription   Statut Membre Dernière intervention   13
 
Peux-tu mettre ta requete pour que j'essaye de t'aider ? ^^
0
guispider
 
<?php
//connection au serveur

require('Connexion.php');

$sqlnum = "SELECT NUMERO_ARRET_CHAINE FROM ARRET_CHAINE";

$req = odbc_exec($conn,$sqlnum) or die('Erreur SQL : <br />'.$sqlnum);


{
$result=odbc_result_all($req);
}



?>

Et ensuite je retourne $result dans :


$NUM = $result+1 ;

//--------------- Requete éxectuté dans la table ---------------//

$sql = "INSERT INTO ARRET_CHAINE (NUMERO_ARRET_CHAINE, DEBUT, TYPE, CONSTAT, CAUSE, DEMANDE, COMPLEMENT_INFORMATION, IMPUTATION, HEURE_DEBUT, HEURE_FIN)

VALUES ( $NUM, #$date#, '$TYPE', '$CONSTAT', '$CAUSE', '$DEMANDE', '$COMPLEMENT', '$IMPUTATION', '$H_DEBUT', '$H_FIN')" ;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alexsimps Messages postés 199 Date d'inscription   Statut Membre Dernière intervention   13
 
Je pense qu'il manque juste un petit truc a te premiere requete.

"SELECT NUMERO_ARRET_CHAINE FROM ARRET_CHAINE"; => ça te renvoi la liste des numero_arret_chaine, alors que ce que tu veux c'est le dernier n°. pour cela il te suffit de faire :

"SELECT MAX(NUMERO_ARRET_CHAINE) FROM ARRET_CHAINE";

Essaye, ça devrait être bon ^^
0
guispider
 
Je test sa merci
0
guispider
 
Arf j'ai cette erreur la Expr1000

Pourtant le code ma lair correct

<?php
//connection au serveur

require('Connexion.php');

$sqlnum = "SELECT MAX (NUMERO_ARRET_CHAINE) FROM ARRET_CHAINE";

$req = odbc_exec($conn,$sqlnum) or die('Erreur SQL : <br />'.$sqlnum);


{
$result=odbc_result_all($req);
}

?>
0
Alexsimps Messages postés 199 Date d'inscription   Statut Membre Dernière intervention   13
 
Oui c de ma faute^^

Il faut renommer le resultat du max en faisant :

SELECT MAX (NUMERO_ARRET_CHAINE) AS MAX_NUM FROM ARRET_CHAINE

le Expr1000 correspond au nom généré par sql^^
0
guispider
 
Arf ok la il me trouve le dernier num mai j'arrive pas a l'avoir en variable pour l'utilier et la définir comme $num = $variable ?++
0
Alexsimps Messages postés 199 Date d'inscription   Statut Membre Dernière intervention   13
 
dans mon exemple, ça devrait être $MAX_NUM je crois...
0
guispider Messages postés 50 Date d'inscription   Statut Membre Dernière intervention   3
 
Re dsl hier cT la fin de la journée !!

C'est bon sa fonctionne niquel merci bcp !!!

YES WE CAN !!!!
0
Alexsimps Messages postés 199 Date d'inscription   Statut Membre Dernière intervention   13
 
Ravi de t'avoir aidé ^^

N'oublis pas de passer ton probleme à résolu ^^


Bonne prog
0