PB de clef primaire => doublons !!
Résolu
guispider
-
Alexsimps Messages postés 199 Date d'inscription Statut Membre Dernière intervention -
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
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:
- PB de clef primaire => doublons !!
- Clef usb non reconnue - Guide
- Doublons photos - Guide
- Formater clef usb - Guide
- B2i primaire - Télécharger - Études & Formations
- Supprimer les doublons excel - Guide
12 réponses
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.
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.
<?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')" ;
//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')" ;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 ^^
"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 ^^
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);
}
?>
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);
}
?>
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^^
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^^
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 ?++