update id auto-increment

hak
Invité n'ayant pas de compte PHPfrance

21 mars 2005, 17:21

bonjour

je voudrai savoir si on pouvait faire un update auto-incrementé sur un id auto-incrementé ?? je crois que ce n'est pas possible mais bon l'epoir fait vivre :lol: .

merci de vos reponses .

Petit nouveau ! | 3 Messages

21 mars 2005, 17:37

keske tu appel un update autoincrementé???

Invité
Invité n'ayant pas de compte PHPfrance

21 mars 2005, 20:21

alors pour etre plus précis .
je fais un insert dans une base de données , l'identifiant est auto incrementé , bon la rien de speciale , en revanche ma question est si je fais un update sur cette meme ligne est ce que je peux le faire sur l'identifiant . exemple :

insert :
-----------
ligne1 : id=56 , nom=nom , etc etc
ligne2 : id=57, nom=nom , etc etc
ligne3 : id=58 , nom=nom , etc etc
ligne4 : id=59 , nom=nom , etc etc
ligne5 : id=60 , nom=nom , etc etc
...etc
..etc
lignen : id=n , nom=nom , etc etc

je veux faire un update sur la ligne 1 :
est ce que celle ci peut devenir comme ça :
lignen+1 : id=n+1 , nom=autrenom , etc etc

j'espere que je me suis fait comprendre :(

Eléphanteau du PHP | 13 Messages

21 mars 2005, 21:02

A ma connaissance non tu ne peux pas.

Mais quel est l'intérêt de faire ca???

Y a peut être une autre solution?

AYAYAAA

hak
Invité n'ayant pas de compte PHPfrance

21 mars 2005, 21:05

merci de ta reponse c'est ce que je craignais .
bon courage

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

21 mars 2005, 21:46

Pourquoi tu ne pourrais pas ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

hak
Invité n'ayant pas de compte PHPfrance

22 mars 2005, 16:00

c'est bon j'ai trouvé un truc :
c'est un peu tiré par les cheveux mais ça marche si ça peut aider qqun , je reprend la prog de qqun d'autre et je suis obligé de faire avec et m'adapter à ce qu'il a fait.

Code : Tout sélectionner

$query="select id from table order by id desc limit 0,1"; $result=mysql_query($query)or die("requete erreur"); $num_resultas = mysql_num_rows($result); if ($num_resultas) { $row = mysql_fetch_array($result); $id ="$row[id]"; $idu=$id+1; $query =" update table set id='$idu', etc etc etc ...";

Mammouth du PHP | 19672 Messages

22 mars 2005, 16:13

ça marche pas ce truc: si tu incrémentes "manuellement" une valeur de clé primaire, tu vas te heurter à l'existence d'une autre clé portant déjà le numéro que tu veux mettre... Tu peux faire tous les scripts que tu voudras, il faudrait, pour que ça marche, que tu fasse un update sur toutes les lignes de la table en commençant par le numéro le plus grand: en l'incrémentant, tu libères la place pour incrémenter la clé inférieure etc...
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 334 Messages

22 mars 2005, 16:59

Au lieu d'update, tu fais un INSERT avec les nouvelles données et un DELETE de l'ancien enregistrement :idea:

Petit nouveau ! | 3 Messages

22 mars 2005, 17:49

D'après son explication il veut que si il modifie la ligne 2 elle deviennent la ligne 3 ( et que toute les lignes suivantes soient décallé ).

Avec un delete / insert sa prendra la dernière id + 1 et non pas l'id de la ligne + 1.

Mammouth du PHP | 19672 Messages

22 mars 2005, 17:52

Ben oui, justement, c'est précisément ce que j'ai écrit si vous lisez bien: il faudra traiter toutes les lignes en partant de l'id le plus grand pour décaler.
Je serais très curieux de comprendre la nécessité de faire ça :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 334 Messages

22 mars 2005, 21:01

Au temps pour moi j'avais pas compris comme ça

C'est bizarre :o