IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Liste doublement chainée et MySQL


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 7
    Par défaut Liste doublement chainée et MySQL
    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 !

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    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é :
    id, nom
    1, alpha
    2, beta
    3, epsilon
    => c'est classé dans l'ordre et l'identifiant est cohérent avec l'ordre.

    J'ajoute delta et la liste devient :
    1, alpha
    2, beta
    3, epsilon
    4, delta
    => classement cassé !

    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 !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 7
    Par défaut Liste doublement chaînée
    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.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 7
    Par défaut Liste doublement chaînée et MySQL
    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 ?

  5. #5
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    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 !

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 7
    Par défaut Liste doublement chaînée et MySQL
    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;

Discussions similaires

  1. liste doublement chainée
    Par Ucom-C++ dans le forum C
    Réponses: 11
    Dernier message: 07/06/2007, 13h34
  2. Réponses: 2
    Dernier message: 24/03/2007, 12h48
  3. Problème sur les listes doublement chainée
    Par Traouspont dans le forum C
    Réponses: 5
    Dernier message: 05/01/2007, 12h02
  4. Pb Liste doublement chainée template
    Par ederf dans le forum Langage
    Réponses: 5
    Dernier message: 19/11/2006, 10h35
  5. Liste doublement chainée
    Par sorry60 dans le forum C
    Réponses: 23
    Dernier message: 03/12/2005, 17h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo