[SQL] Update du champ id
Résolu
hektoumayo
-
SearchLab Messages postés 4 Statut Membre -
SearchLab Messages postés 4 Statut Membre -
Bonjour,
Voila mon petit problème :
J'ai un table mysql dont le champ "primaire" "auto_incriment" se nomme "id". Je voudrais après suppression d'un champ de la table modifier le "id" pour que celui ci commence toujours à 1. Donc voici le script que j'ai réaliser :
$req="SELECT id FROM livredor";
$resultat=mysql_query($req) or die('ERREUR SQL :'.$req.'<br />'.mysql_error());
$val=mysql_fetch_array($resultat);
$i=1;
while($val) {
$query="UPDATE livredor SET id=' ".$i." ' ";
mysql_query($query) or die('ERREUR SQL :'.$query.'<br />'.mysql_error());
$i=$i+1;
}
Mais celui-ci ne marche pas. Il ne s'agit pas d'une erreur de syntaxe mai bel et bien d'une erreur de programmation.
Est ce que quelqu'un pourrai s'il vous plait m'indiquer l'erreur? Et surtout s'il existe une solution à ce problème.
Merci d'avance.
Voila mon petit problème :
J'ai un table mysql dont le champ "primaire" "auto_incriment" se nomme "id". Je voudrais après suppression d'un champ de la table modifier le "id" pour que celui ci commence toujours à 1. Donc voici le script que j'ai réaliser :
$req="SELECT id FROM livredor";
$resultat=mysql_query($req) or die('ERREUR SQL :'.$req.'<br />'.mysql_error());
$val=mysql_fetch_array($resultat);
$i=1;
while($val) {
$query="UPDATE livredor SET id=' ".$i." ' ";
mysql_query($query) or die('ERREUR SQL :'.$query.'<br />'.mysql_error());
$i=$i+1;
}
Mais celui-ci ne marche pas. Il ne s'agit pas d'une erreur de syntaxe mai bel et bien d'une erreur de programmation.
Est ce que quelqu'un pourrai s'il vous plait m'indiquer l'erreur? Et surtout s'il existe une solution à ce problème.
Merci d'avance.
A voir également:
- Sql update where id in
- Windows update bloqué - Guide
- Winget update - Guide
- Document id lycamobile - Forum Logiciels
- Asus live update - Télécharger - Utilitaires
- Id telephone - Guide
2 réponses
donc, la solution de ton probleme c'est lors de la suppression!
tu fait ton DELETE, et puis tu fais la commande:
" UPDATE livredor SET id=(id-1) WHERE id>='$id' "
ça decremente les "faux" numéros juste apres l'effacement
tu fait ton DELETE, et puis tu fais la commande:
" UPDATE livredor SET id=(id-1) WHERE id>='$id' "
ça decremente les "faux" numéros juste apres l'effacement
le "update" en général est utilisé avec "where" pour cibler les enregistrements
UPDATE table SET champ=valeur WHERE condition
dans ton cas, je ne vois pas pourquoi tu veux "forcer" la valeur de "id" si tu l'as au préalable définis à "auto_increment".
c'est tout simplement INUTILE!
il te suffis lors de l'ajout d'un nouveau enregistrement d'utiliser la syntaxe:
INSERT INTO table (champs) VALUES (valeurs)
mais, dans les champs, tu ne met pas le champ "id", il sera mis automatiquement par MySQL!
donc tu ignore completement ce champ sauf lors de la selection d'un enregistrement bien précis dans un SELECT:
" SELECT * FROM table WHERE id='$id' "
sur ce, @+
UPDATE table SET champ=valeur WHERE condition
dans ton cas, je ne vois pas pourquoi tu veux "forcer" la valeur de "id" si tu l'as au préalable définis à "auto_increment".
c'est tout simplement INUTILE!
il te suffis lors de l'ajout d'un nouveau enregistrement d'utiliser la syntaxe:
INSERT INTO table (champs) VALUES (valeurs)
mais, dans les champs, tu ne met pas le champ "id", il sera mis automatiquement par MySQL!
donc tu ignore completement ce champ sauf lors de la selection d'un enregistrement bien précis dans un SELECT:
" SELECT * FROM table WHERE id='$id' "
sur ce, @+
Bon je pense que tu n'a pa bien compris ce que je voulais dire.
En fait , je voudrais creer un formulaire ds lequel je preciserez le numéro du message à supprimer. Ce numero correspond à l'id de ma table.
La suppression se passe très bien mais le problème c'est que lors de l'affichage de mon livre d'or a nouveau , le premier message du livre d'or a par exemple le numero 3 ( après avoir supprimé le premier et le deuxieme message) , ce qui est parfaitement débil puisqu'il est le premier !
Est ce que tu vois ce que je veu dire?
En fait , je voudrais creer un formulaire ds lequel je preciserez le numéro du message à supprimer. Ce numero correspond à l'id de ma table.
La suppression se passe très bien mais le problème c'est que lors de l'affichage de mon livre d'or a nouveau , le premier message du livre d'or a par exemple le numero 3 ( après avoir supprimé le premier et le deuxieme message) , ce qui est parfaitement débil puisqu'il est le premier !
Est ce que tu vois ce que je veu dire?