kifouillou
Messages postés170Date d'inscriptionmardi 27 septembre 2005StatutMembreDernière intervention28 janvier 2011
-
14 mars 2008 à 10:29
kifouillou
Messages postés170Date d'inscriptionmardi 27 septembre 2005StatutMembreDernière intervention28 janvier 2011
-
19 mars 2008 à 10:34
bonjour,
j'ai un petit problème de mise à jour d'une base. J'ai une fonction qui permet d'afficher des champs puis une autre fonction qui met à jour la base lorsque ces champs sont modifiés.
Dans ma fonction de validation je parcours mon tableau de champs avec un foreach et ensuite je fais un update.
function pimpValiderStructureDocument($html)
{
// boucle pour parcourir le tableau contenant les enregistrements
kifouillou
Messages postés170Date d'inscriptionmardi 27 septembre 2005StatutMembreDernière intervention28 janvier 2011 19 mars 2008 à 10:34
bonjour à tous,
sa y es j'ai résolu mon problème. J'ai appris un truc très utile en php, c'est les regex. Et encore je trouve que celle que j'ai utilisé est pas compliqué. Je vous donne donc ma solution commentée, si quelqu'un à l'avenir à le même souci.
// Parcours des champs du formulaire pour enregister chaque ligne
$struct_ordre=1;
foreach ($_POST as $k => $v)
{
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);
$struct_ordre++;
}
else
dbiInsertBDArray('stream_structure_2', $Data);
}
kifouillou
Messages postés170Date d'inscriptionmardi 27 septembre 2005StatutMembreDernière intervention28 janvier 2011 14 mars 2008 à 17:20
Désolé d'avoir créer mon message en double, c 'est une erreur de ma part. Par contre pour mon update j'ai un peu réfléchi sans toutefois trouver de solution car niveau code y a pas d'erreur donc il doit y avoir un oubli de ma part.
$k est un tableau et c'est les valeurs de $k que je veux mettre à jour. Mon update n'a pas d'erreur(enfin je pense) mais il ne met ien à jour donc je pense qu'il faut utiliser le $v mais je ne maitrise pas les tableaux donc pouvez vous me dire comment je peux mettre ma base à jour à partir du tableau?
Si c'est possible bien sur.
kifouillou
Messages postés170Date d'inscriptionmardi 27 septembre 2005StatutMembreDernière intervention28 janvier 2011 17 mars 2008 à 10:46
Bonjour,
Oui oui le sturct-id est normal. C'est parce que mon champ s'appelle comme cela. Donc comme cela sa me permet de m'en souvenir en mettant le même nom de variable.
En fait le problème a un petit peu changé. L'update doit se faire à partir d'un draganddrop réalisé avec l'API YUI en javascript. Donc ce que je veux mettre à jour c'est l'ordre des enregistrements que j'a réalisé avec le draganddrop.
voilà le code html de mes champs contenues dans une div :
kifouillou
Messages postés170Date d'inscriptionmardi 27 septembre 2005StatutMembreDernière intervention28 janvier 2011 17 mars 2008 à 19:42
Lorsque j'appuie sur le bouton valider de mon formulaire sa m'envoie vers une fonction qui valide le changement. C'est dans cette fonction valider que j'exécute la requète que tu vois plus haut.