Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1592 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  optimisation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

optimisation

n°1707174
kifouillou
Posté le 25-03-2008 à 10:43:09  profilanswer
 

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 :
  1. // Parcours des champs du formulaire pour enregistrer chaque ligne
  2.     $div_ordre = $_POST['div_order'];
  3.    
  4.     $tab_structure = explode(',', $div_ordre);
  5.    
  6.    
  7.    
  8.     foreach ($_POST as $k => $v)
  9.     {
  10.        
  11.        
  12.         if (!$v)
  13.             continue;
  14.         if (! ereg("^lst_sturct_id([0-9]+)$",$k,$o)) continue; // On ne recherche que les champs hidden embarquant l'id de la bdd
  15.             $ligne = $o[1];
  16.              // numéro de la ligne en cours de traitement
  17.         $id = $v;
  18.      
  19.                // L'id de l'enregistrement est la valeur de ce champs
  20.         $Data = array(); // Créer un tableau vide pour stoker les valeurs à enregistrer
  21.         $Data['struct_type_stream'] = $_POST['type_'.$ligne];
  22.         $Data['struct_nom'] = $_POST['nom_'.$ligne];
  23.         $Data['struct_libelle'] = $_POST['libelle_'.$ligne];
  24.         $Data['struct_datatype'] = $_POST['datatype_'.$ligne];
  25.        
  26.         //$Data['struct_ordre'] = $ordre;
  27.      
  28.         if ($id)
  29.         { // Si un id est dispo => enregistrement existant à modifier, sinon enregistrement à créer   
  30.             dbiUpdateBDArray('stream_structure_2', 'sturct_id', $id, $Data);
  31.             $ordre++;   
  32.         }
  33.         else
  34.         {
  35.             dbiInsertBDArray('stream_structure_2', $Data);
  36.         }
  37.         foreach ($tab_structure as $k =>$v)
  38.         {
  39.             $id = substr($v, 2);
  40.             $D = array();
  41.             $D['struct_ordre'] = $k + 1;
  42.        
  43.             dbiUpdateBdArray('stream_structure_2', 'sturct_id', $id, $D);
  44.         }
  45.    
  46.     }


 
Merci d'avance.

mood
Publicité
Posté le 25-03-2008 à 10:43:09  profilanswer
 

n°1707303
vanadium
N° Atomique : 23
Posté le 25-03-2008 à 14:04:02  profilanswer
 

C'est nébuleux tout ça : tu mélanges anglais et français dans ton code, et c'est une vraie usine à gaz au passage :D

n°1707321
kifouillou
Posté le 25-03-2008 à 14:14:32  profilanswer
 

salut,
 
oui c'est vrai que j'ai mélangé un peu français et anglais. Faudra que je  pense à changer cela. Mais sinon est-ce que le deuxième update(celui du deuxième foreach peut-être enlevé et que le premier prenne tout en compte? Car j'ai essayé de déplacer mon foreach dans le code mais bon mon champ ordre ne se mettait pas à jour. Malgré le fait que que ce soit nébuleux, est-ce compréhensible et mon problème est-il résolvable?

n°1707499
kifouillou
Posté le 25-03-2008 à 17:32:36  profilanswer
 

Bon ben j'ai réussi à réduire à un seul update. Maintenant me reste plus qu'à optimiser au mieux cette "usine à gaz" comme l'a dit vanadium


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  optimisation

 

Sujets relatifs
Probleme et optimisation de requeteC++, boucles, compilo, et optimisation
optimisation de boucles[SQL] Optimisation de requete
Optimisation Comparer deux colonnes en VBA sous Exceloptimisation du code, tester valeur avant attribution ?
Tracage itinéraire - Optimisation performances[MDX] Optimisation de requetes sur cubes / AnalysisServices2005
besion aide optimisation php mysql[SQL] Optimisation d'une réquète récursive
Plus de sujets relatifs à : optimisation


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR