CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

incrementation et suppression de données

korpikvodka
korpikvodka
Niveau 10
19 juin 2012 à 00:33:07

Bonsoir,
je cherche à réguler l'auto_increment de mon id de manière à que, si je supprime une donnée, l'auto_increment cesse.

Exemple :
j'ai 3 données (id 1; 2; 3), je supprime la donnée 2 (id 1; 3)
je rajoute une donnée (id 1; 3; 5)

C'est pas le top pour lister les articles d'un blog m'voyez :noel:

J'ai essayé :
$ai = 'ALTER TABLE articles AUTO_INCREMENT=0';
$query = 'DELETE FROM articles WHERE id='.$id.'';

if($delete = mysql_query($ai) && $delete = mysql_query($query)) {
echo '<font color="green">Suppression effectuée</font>';
}

Mais sans résultat, pourtant j'ai vu cette requête dans de nombreux forums. Auriez-vous une idée pour résoudre mon problème ?

deepblue
deepblue
Niveau 16
19 juin 2012 à 02:10:53

Mais quelle idée et ton exemple est foireux (sauf si tu avais une donnée avec l'id 4 qui elle aussi a été supprimée).

La seule valeur d'auto_increment que tu pourrais indiquer serait celle du plus grand id + 1.

korpikvodka
korpikvodka
Niveau 10
19 juin 2012 à 03:04:30

Ouais j'ai oublié l'id 4 exemple bien foireux comme tu dis.
Je ne peut donc pas réorganiser mes id si je supprime une donnée en plein milieux de ma table ?
J'aurais des id fausses du coup. :(

deepblue
deepblue
Niveau 16
19 juin 2012 à 09:06:56

Tu n'auras pas d'id "faux", juste des trous dans leur itération. De toute façon, tu ne feras jamais un truc comme :

for($u=1; $u<100; $u++) {
$sql->query('select from foo where id='.$u);
}

korpikvodka
korpikvodka
Niveau 10
19 juin 2012 à 12:16:33

Mais y a t-il moyen d'éviter ces trous ?

Thymotep
Thymotep
Niveau 10
19 juin 2012 à 12:48:42

Non, et il n'y a aucun intérêt à le faire, le principe de l'ID, et qu'il soit unique, donc si tu le supprimes, il n'existe plus. Qu'est ce que pourrait t'apporter ce système ?

Imaginons un système d'article, tu aura l'ID dans l'URL, donc google va référencer le contenu lié à l'URL (qui contient l'ID). Si tu supprimes cet article et qu'un autre prend le même ID par la suite, avec un nouveau contenu. Google ne vas pas du tout apprécié/comprendre. (Idem pour une personne qui garderai le lien en favoris).

korpikvodka
korpikvodka
Niveau 10
19 juin 2012 à 12:50:51

Ah effectivement je n'avais pas pensé à ça, merci Thymotep.

Fire_Storm
Fire_Storm
Niveau 10
19 juin 2012 à 17:50:43

Bah oui imagine qu'une bagnole est relié à une liste de prix, que cette voiture a l'ID 5 et la liaison fait que cette voiture coute 25.000 €.

L'ID 4 par contre est par exemple une bouteille de coca à 2,50 €.

Tu supprimes le 4, la bagnole devient le numéro 4 et par conséquent le prix de la voiture est de ... 2,50 €.

Je sais que ça peut paraître déroutant au début mais c'est tout à fait normal que ça fonctionne ainsi, sinon tu risques de te retrouver face au problème ci dessus. L'ID a pour seul et unique but de pouvoir identifier l'enregistrement de manière unique, que ça soit un chiffre ou autre mais il DOIT être UNIQUE dans la table où il se trouve (d'où un bête système de compteur, tu ne repasseras jamais par le même nombre).

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment