Bonjour,
Est-il possible de gérer une liste doublement chaînée en sauvegardant les données dans MySQL à chaque modification ? Ou existe-t-il une autre façon de faire plus appropriée ?
Merci !
Bonjour,
Est-il possible de gérer une liste doublement chaînée en sauvegardant les données dans MySQL à chaque modification ? Ou existe-t-il une autre façon de faire plus appropriée ?
Merci !
Tu peux expliquer plus concrètement ton besoin ?
S'il s'agit de parcourir une table dans un certain ordre, il faudra formaliser cet ordre, en notant que l'identifiant auto-incrémenté peut ne pas être suffisant en cas d'ajouts de données qui viendraient logiquement se positionner au milieu de l'ordre.
Exemple...
J'ai au départ les données suivantes avec un identifiant auto-incrémenté :
=> c'est classé dans l'ordre et l'identifiant est cohérent avec l'ordre.id, nom
1, alpha
2, beta
3, epsilon
J'ajoute delta et la liste devient :
=> classement cassé !1, alpha
2, beta
3, epsilon
4, delta
Il faut donc ajouter une colonne ordre et prévoir une procédure qui va réorganiser cet ordre à chaque ajout.
Avant :
id, nom, ordre
1, alpha, 1
2, beta, 2
3, epsilon, 3
Après
id, nom, ordre
1, alpha, 1
2, beta, 2
3, epsilon, 4
4, delta, 3
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
En réalité, mon projet est de faire une liste d'écoute musicale préférée à partir d'une autre liste trié par titre.
Je veux parcourir la liste préférée dans les 2 sens et je veux pouvoir ajouter et supprimer un titre à n'importe quel endroit dans la liste.
J'ai trouvé le code php pour gérer une telle liste en mémoire mais est-ce possible de gérer la liste de titres préférés en mettant à jour chaque changement dans une table MySQL ?
Comme il s'agit de parcourir une liste, je pense que le plus simple serait de rapatrier la liste complète et de gérer le parcours dans le programme plutôt que de lancer une requête pour aller chercher le suivant ou le précédent.
Mais en tout cas pour ordonner la liste, je t'ai donné le principe.
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
Même pour gérer la liste doublement chaînée (qui est du type objet) en mémoire, j'ai le problème qu'à chaque fois que je pèse un bouton pour ajouter un titre, la liste ne veut pas se transmettre par le formulaire.
J'ai essayé de sérialiser la liste pour l'envoyer dans un formulaire, ce qui fonctionne en transformant l'objet en type string. Mais lorsque je désérialise la liste pour la retrouver sous type "objet", les méthodes de l'objet ne reconnaissent pas la liste comme étant un objet valable.
J'ai essayé aussi de mettre la liste dans une variable SESSION sans succès :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $liste = new testliste(); $_SESSION['sessionliste'] = $liste;
Partager