Page 1 sur 1
Insertion nouvelle données et ID
Posté : 16 avr. 2008, 14:21
par Kayao
Bonjour,
j'ai créé une table contenant différentes valeurs et incrémentée par un champ ID. Je voudrais à présent insérer de nouvelles données à différents endroits de cette table seulement étant donné qu'à chaque ligne ID est incrémenté d'1 à chaque fois, je n'ai plus de place pour insérer les nouvelles données où je le souhaite.
Y a t-il un moyen pour insérer de nouvelles données (via phpmyadmin par exemple) tout en faisant en sorte que l'ID des données existantes soit automatiquement décalé de +1 ou bien dois-je changer manuellement la valeur d'ID ?
Posté : 16 avr. 2008, 14:40
par Sékiltoyai
Si tu essayes de faire cela, c'est que ton utilisation de ce champ est mauvaise.
http://www.phpfrance.com/forums/voir_sujet-27678.php
Si jamais tu as un classement à faire, il te faut un nouveau champ.
Posté : 16 avr. 2008, 16:00
par Kayao
He bien en fait la valeur d'ID n'a aucune influence sur l'affichage de mes données, je n'y fais même pas appel. Je souhaite simplement insérer de nouvelles données à tel ou tel endroit endroit par souci de clarté lorsque je consulte ma bdd sous phpmyadmin : tel produit à la suite de tel autre, tous les produits d'une meme catégorie à la suite etc...
Mais mis à part ca, je pourrais très bien rajouter les nouvelles données à la fin de ma table actuelle sans que ca ne se voit à l'affichage ou que ca me gène pour quoi que ce soit.
C'est juste pour lire plus facilement et retrouver mes données rapidement sous phpmyadmin.
Posté : 16 avr. 2008, 16:08
par Sékiltoyai
Hé bien sous phpmyadmin, effectue le même classement que celui que tu fais sur ton site, c'est la seule solution viable. Par ailleurs, j'aurais tendance à te conseiller de faire une interface d'administration pour ajouter tes produits plutôt que les ajouter dans PMA… :-/
Posté : 16 avr. 2008, 16:31
par Kayao
Oui c'est prévu pour l'interface d'admin, j'ai préféré passer au début directement par phpmyadmin pour bien comprendre son fonctionnement.
Bon apparemment ca n'est pas possible d'insérer une ligne avec ID auto-incrémenté ou en tout cas pas facile. Je vais voir ce que je peux faire autrement.
Merci.
Posté : 16 avr. 2008, 16:55
par zeus
Pour poursuivre dans la voie de
Sekiltoyai :
Il est possible mais compliqué d'insérer des données en forçant la clé primaire (modifier la structure du champ pour enlever l'auto-increment, insérer la données en renseignant la clé primaire, rétablir la structure du champ)
La raison pour laquelle tu veux faire ça, c'est uniquement une raison de présentation (voir les données triées dans PhpMyAdmin)
La conclusion à laquelle nous t'enverrons tous est celle qui a déjà été données par
Sekiltoyai : si tu veux modifier l'ordre de présentation, il faut travailler avec une requête SQL.
Tant que tu ne disposes pas d'interface d'admin, je te conseille d'écrire les quelques requêtes qui vont bien et de les sauvegarder dans un fichier afin de les retrouver rapidement

Posté : 16 avr. 2008, 17:43
par Hubert Roksor
D'ailleurs, même en changeant la valeur de la clé primaire ça ne changera probablement pas l'ordre d'affichage, puisqu'il correspond à l'ordre physique par défaut.
Kayao, le plus simple pour toi sera probablement de cliquer sur le nom de la colonne que tu veux utiliser pour afficher les enregistrements dans l'ordre correspondant.
Posté : 16 avr. 2008, 18:42
par caroube
Tu peux toujours faire ceci après chaque modification de la table (insert, update, delete)
ou order by ce que tu veux ... ASC ou DESC
Comme ça dans phpmyadmin, tes données les plus récentes seront en premier.
(voir onglet opération dans phpmyadmin quand une table est sélectionnée : ordonner la table par ...)
Posté : 17 avr. 2008, 14:56
par Kayao
D'accord, apparemment c'est pas simple de faire ca donc je vais tout simplement ajouter mes données à la suite puis ferais une requète sql triée pour les lire tel que je le souhaite avant de faire des modifs si je vois que c'est nécessaire.
C'est un peu moins pratique mais finalement ca le fera tout aussi bien.
Merci pour vos réponses