[SQL] Update du champ id

Résolu
hektoumayo -  
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.
A voir également:

2 réponses

sam3000 Messages postés 1226 Statut Membre 144
 
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
2
sam3000 Messages postés 1226 Statut Membre 144
 
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, @+
0
hektoumayo
 
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?
0
SearchLab Messages postés 4 Statut Membre > hektoumayo
 
Dis moi hektoumayo j'ai le même problème que toi quelle solution as tu trouvé pour corriger ton problême (je sais le post est un peu vieux...)
0