Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/09/2007, 22h13   #1
Invité de passage
 
Inscription : septembre 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 2
Points : 0
Points : 0
Par défaut Enregistrements multiples à partir d'un seul formulaire

Bonjour,

J'affiche, par l'intermédiaire d'une boucle do...while, plusieurs enregistrements dans un tableau. Les données s'inscrivent dans des champs textes ouverts à la modification. Tous ces champs constituent un formulaire.

Au lieu de devoir cliquer ligne par ligne, enregistrement par enregistrement, pour inscrire les modifications dans une base de données SQL, j'aimerais pouvoir modifier tous les enregistrements affichés en cliquant une fois sur le bouton submit.

En espérant que vous me compreniez, pouvez-vous me dire comment faire pour gérer une boucle lors de l'enregistrement, alors que je ne sais pas à l'avance combien d'enregistrements vont devoir être mis à jour?

D'avance un grand merci pour vos réponses...
alex1810 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2007, 22h32   #2
Membre actif
 
Avatar de JmL40
 
Inscription : mai 2007
Messages : 310
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : mai 2007
Messages : 310
Points : 191
Points : 191
Envoyer un message via MSN à JmL40
Bonjour,

Tu fais un UPDATE sur tous les champs. Ainsi, tous les modifications seront pris en compte meme pour les champs qui n'ont pas été modifié.

Cette méthode est simple, mais très fastidieuses car si l'utilisateur fais une modification innattendue elle sera quand meme pris en compte.

Une autre méthode plus longue consiste à comparer le contenu de ton champs dans la table, avec la valeur poster dans le formulaire, si ces deux diffèrent tu fais un update. Cette méthode peut-ête valable dans le cas ou tu affiches une valeur dans ton formulaire.

Cordialement
JmL40 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2007, 22h48   #3
Invité de passage
 
Inscription : septembre 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 2
Points : 0
Points : 0
Bonjour,

Merci de votre réponse. J'ai cependant du mal m'exprimer.

Mon but est de mettre à jour plusieurs enregistrements (lignes) d'une table avec les valeurs d'un formulaire qui affiche lui-même ces plusieurs enregistrements. Cette UPDATE devrait se faire en bloc (tous les enregistrements affichés) en un submit du formulaire et non ligne par ligne (enregistrement par enregistrement).

Pratiquement : j'ai une liste de noms (chacun est un enregistrement de ma table), j'affiche chaque nom sur une ligne dans un input text. L'utilisateur va modifier plusieurs noms, donc plusieurs enregistrements de ma table, et doit pouvoir, d'un clic sur le bouton envoyer, mettre à jour tous les enregistrements. Comment puis-je faire?

D'avance merci de votre réponse
alex1810 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2007, 23h32   #4
Membre actif
 
Avatar de JmL40
 
Inscription : mai 2007
Messages : 310
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : mai 2007
Messages : 310
Points : 191
Points : 191
Envoyer un message via MSN à JmL40
Bonsoir,

Justement, tu récupère ainsi chaques enregistrements (ou nom) dans ta table, tu affiche tout ca dans ton formulaire soit des input text, comme tu veux !

Ensuite quand tu soumet ton formulaire, tu peut faire un UPDATE c'est certain. J'ai implémenter ce type de solution dans une application.
Tu as deux solutions :

- Faire un update direct sur tous tes champs en utilisant le principe de concaténation.

- Soit faire une vérification entre la valeur postée et la valeur du champ contenu dans ta bd, soit plusieurs update

En clair :

Solution 1 :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
$requete = 'UPDATE Table SET';
 
if(isset($_POST["champ1"]))
{
    $requete.= 'champBD1 = $_POST["champ1"]';
}
 
if(isset($_POST["champ2"]))
{
    $requete.= 'champBD2 = $_POST["champ2"]';
}
 
if(......){} //ainsi de suite
 
$requete.= 'WHERE ..... = .... ;';
 
mysql_query($requete);
Tu peut optimiser tout cela bien sur. En fait, tu vérifie si la valeur poster existe bien, ou plutot si elle contient une valeur. Si celle-ci est vide ta condition IF ne sera pas prise en compte.

Deuxième solution :

Code :
1
2
3
4
5
6
7
8
9
10
 
//tu recupere le contenu de chaque champs de ta base
// et tu compare
 
if($data["champbd1"] != $_POST["champ1"]
{
$requete = 'UPDATE ....';
 
}
//ainsi de suite
Voila tout, enfin je pense que ta la ou les solutions sinon ....

Cordialement
JmL40 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h55.


 
 
 
 
Partenaires

Hébergement Web