select multiple, comparaison de tableaux et mise à jour dans la base de données

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : select multiple, comparaison de tableaux et mise à jour dans la base de données

par VaN » 25 févr. 2009, 16:44

Effectivement ça marche. j'ai juste dû reconstruire un peu l'un de mes tableaux, qui n'avait pas la même architecture que l'autre, et c'est bon.

Merci pour cette fonction, je ne pensais vraiment pas que PHP savait faire cela de lui même.

par Aureusms » 25 févr. 2009, 15:38

Je pense que tu as essayé array_diff() masi je pose quand même la question...
Cette fonction a l'air indiquée dans ton cas.

select multiple, comparaison de tableaux et mise à jour dans

par VaN » 25 févr. 2009, 12:14

Bonjour,

voici mon problème.

J'ai 3 tables, PACKS, OPTIONS et LIENS_PACKS_OPTIONS. Un pack peut contenir 0, 1 ou plusieurs options. Ces liens sont symbolisés par une insertion dans la table LIENS_PACKS_OPTIONS, de cette manière :

Image

Ici, on voit que le pack 1 contient les options 1 et 2.

J'ai ensuite un formulaire, qui me permet de modifier un pack, avec <select multiple=multiple">, pour sélectionner les options à lui lier.

Mon problème est que j'aimerai au moment de la mise à jour, faire quelque chose de propre. Jusqu'à maintenant, lorsque j'avais ce type d'opération à faire, je supprimais tous les liens de ce pack dans la table LIENS_PACKS_OPTIONS, et je récréais les nouveaux liens. Mais je vois bien qu'il est possible de faire autrement :

En amont de la requête, faire une sorte de comparaison entre mon ancien tableau de liens, extrait de la base de données, et mon nouveau tableau de lien, qui provient du formulaire : et ensuite, faire les étapes suivantes :

1. Supprimer les liens de la table LIENS_PACKS_OPTIONS qui ne sont pas présents dans le tableau issu du formulaire.
2. Ajouter les liens issus du formulaire qui ne sont pas encore dans la table LIENS_PACKS_OPTIONS.

Mon problème est que je ne bloque pour faire cette comparaison entre les 2 tableaux. Pourriez-vous m'aider ?

Mais peut-être que la solution que je souhaite mettre en place n'est pas forcément meilleure que l'ancienne ? Est-elle plus gourmande ?