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
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);
}
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.
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 :
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.