Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 16/05/2011, 11h55   #1
Invité régulier
 
Homme
Développeur Web
Inscription : mai 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2011
Messages : 24
Points : 8
Points : 8
Par défaut [MySQL] update champs générés

Bonjour,

Je monte des formulaires pour que des utilisateurs puissent entrer des données et les visualiser.
Je rencontre un problème pour faire l’update de données dans ma base, il s’agit de champs dynamiques générés à l’aide de Javascript.

Lors de la connexion, je vérifie s’il y a du contenu dans la base :
Si NON = formulaire d’INSERT
Si OUI = Formulaire d’UPDATE

Pour l’insertion, tout est OK, voici comment les champs sont générés et insérés dans la base (formulaire INSERT):

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?
if (isset($_POST['nbreLigneAct']))
{
//boucle pour generer les nouvelles lignes (nbreLigneAct)
	for ($i=0;$i<$_POST['nbreLigneAct'];$i++)
	{ ?>
		<tr>
			<td class="action"><textarea rows='5' cols="25" name='ActAct<? echo ($i+2);?>'><?
				$nomAct="ActAct".($i+2); if(!empty($_POST[$nomAct])) echo $_POST[$nomAct]; ?></textarea></td>
			<td class="action"><textarea rows='5' cols="15" name='ActObj<? echo ($i+2);?>'><?
				$nomObj="ActObj".($i+2); if(!empty($_POST[$nomObj])) echo $_POST[$nomObj]; ?></textarea></td>
		</tr>
<?	}
 
//insert champs generes
for ($i=1;$i<$_POST['nbreLigneAct'];$i++)
{	
	mysql_query("	INSERT INTO indicaperf.action_has_tdb (`idTdb`,`Action`,`Objectif`)
					VALUES('$dernierEnr','".$_POST['ActAct'.($i+1)]."', '".$_POST['ActObj'.($i+1)]."')");
}
?>
Je comptais m'y prendre de la même manière pour faire des modifications (formulaire UPDATE):

Code :
1
2
3
4
5
6
7
8
9
<?
//update champs generes
	for ($i=1;$i<$_POST['nbreLigneAct'];$i++)
	{	
		mysql_query("	UPDATE indicaperf.action_has_tdb
						SET `Action` = '".$_POST['ActAct'.($i+1)]."', `Objectif` = '".$_POST['ActObj'.($i+1)]."'
						WHERE `idTdb` =". $dernierEnr)
	}
?>

Sauf que, ce sont toutes mes lignes générées qui prennent la valeur de ma modification.

Exemple:
Ligne 1 = 1
Ligne 2 = 2
Ligne 3 = 3

Si je modifie Ligne 1 = 5 et que je valide mon formulaire:
Ligne 1 = 5
Ligne 2 = 5
Ligne 3 = 5

Merci d'avance à celui qui saurait me mettre sur la bonne piste.
Code85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 14h27   #2
Invité régulier
 
Homme
Développeur Web
Inscription : mai 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2011
Messages : 24
Points : 8
Points : 8
Bon en fait, c'est logique, puisque je boucle, j'update tous les champs.

Je vois pas comment placer les conditions pour mettre à jour comme il se doit
Code85 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 12h01.


 
 
 
 
Partenaires

Hébergement Web