kifouillou | Bonjour,
j'ai réalisé une fonction qui permet de valider un drag&drop. Cette fonction enregistre donc l'ordre dans une base de donnée. Cela fonctionne très bien mais j'ai deux update et je voudrais savoir si dans un souci d'optimisation il serait possible d'en faire un seul.
Voici mon code :
Code :
- // Parcours des champs du formulaire pour enregistrer chaque ligne
- $div_ordre = $_POST['div_order'];
-
- $tab_structure = explode(',', $div_ordre);
-
-
-
- foreach ($_POST as $k => $v)
- {
-
-
- if (!$v)
- continue;
- if (! ereg("^lst_sturct_id([0-9]+)$",$k,$o)) continue; // On ne recherche que les champs hidden embarquant l'id de la bdd
- $ligne = $o[1];
- // numéro de la ligne en cours de traitement
- $id = $v;
-
- // L'id de l'enregistrement est la valeur de ce champs
- $Data = array(); // Créer un tableau vide pour stoker les valeurs à enregistrer
- $Data['struct_type_stream'] = $_POST['type_'.$ligne];
- $Data['struct_nom'] = $_POST['nom_'.$ligne];
- $Data['struct_libelle'] = $_POST['libelle_'.$ligne];
- $Data['struct_datatype'] = $_POST['datatype_'.$ligne];
-
- //$Data['struct_ordre'] = $ordre;
-
- if ($id)
- { // Si un id est dispo => enregistrement existant à modifier, sinon enregistrement à créer
- dbiUpdateBDArray('stream_structure_2', 'sturct_id', $id, $Data);
- $ordre++;
- }
- else
- {
- dbiInsertBDArray('stream_structure_2', $Data);
- }
- foreach ($tab_structure as $k =>$v)
- {
- $id = substr($v, 2);
- $D = array();
- $D['struct_ordre'] = $k + 1;
-
- dbiUpdateBdArray('stream_structure_2', 'sturct_id', $id, $D);
- }
-
- }
|
Merci d'avance. |