Modification de plusieurs clients à la fois

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Modification de plusieurs clients à la fois

par fred9999 » 09 nov. 2006, 10:26

la boucle de ton update sera un simple for

tu aura tes variables :

nom_stagiaire1 à nom_stagiaireX

X étant le nombre max d'incrément.

par pierrecalligaro » 08 nov. 2006, 17:51

Quel genre de boucle je dois faire dans mon fichier update ?

par fred9999 » 08 nov. 2006, 17:01

oui incrément le nom des tes input

exemple :

Code : Tout sélectionner

<input name="<? echo "nom_stagiaire$num";?>">
ensuite tu fera dans ton update un boucle pour tes modifs

par pierrecalligaro » 08 nov. 2006, 16:01

comment dois je m'y prendre pour récupérer toutes les infos.
je pensais faire un tableau associatif dans ma page de formulaire pour chaque input mais je ne sais pas comment faire.

Une idée ?

par fred9999 » 08 nov. 2006, 15:22

oui c'es normal que tu obtienne que le nom du dernier client car ton input pour cette variable a le meme nom pour toutes tes lignes !!!

par pierrecalligaro » 08 nov. 2006, 15:03

voici mon fichier update avec la boucle, là je ne récupère que les modif de mon dernier client.
$num=$_POST['Num'];
$Nr=trim(strtoupper($_POST["Nom_stagiaire"]));
$P=trim(ucfirst(strtolower($_POST["Prenom"])));


for($i=0;$i<sizeof($num);$i++)
{

$NUM=$num[$i];

$r=" update clients set Nom_stagiaire='$Nr', Prenom='$P'
 where Num='$NUM' ";
$rq=mysql_query($r);
}
mysql_close();

par fred9999 » 08 nov. 2006, 14:27

dans ce cas passe ton script d'update en entier
stp

par pierrecalligaro » 08 nov. 2006, 14:24

si je fais un echo de $NUM j'ai bien mes différents identifiants qui s'affichent.
Et si je fais un echo de $NUM dans mon fichier uptdate j'ai bien les identifiants de mes clients qui s'affichent.
Par contre je n'arrive pas à récupérer les infos des clients dans le fichier update

par fred9999 » 08 nov. 2006, 14:17

désolé il manquai un truc :
for($i=0;$i<sizeof($Num);$i++)  
{  

$NUM=$Num[$i];  

$r="select * from clients where Num='$NUM'";  
$rq=mysql_query($r);  

$numero=mysql_result($rq,0,'Num');  
$N2=mysql_result($rq,0,'Nom');  
$Nr=mysql_result($rq,0,'Nom_stagiaire');  
?>  

<form method="post" action="vrai_modif_client.php">  
      <fieldset>  
       <legend>Coordonnées</legend>  
<!--Infos clients-->  
        <p><label>Nom de la société :</label><b><?php echo $N2; ?></b></p>  
        <p><label>Nom du stagiaire:</label><input name="Nom_stagiaire$i" type="text" maxlength="100" value="<?php echo $Nr; ?>"/></p>  
     </fieldset>  

        <input type="hidden" value="<? echo $numero ?>" name="Num$i" />  

<?php  
$p=$p+1;
}  

?>  
<!--Bouton envoie-->  
        <p class="formbt"><input type="submit" value="Modifier" name="envoyer" class="bouton"/><input type="hidden" value="<? echo $p; ?>" name="max" /> </p>  

</form>
 

par fred9999 » 08 nov. 2006, 14:15

sinon je verrai le formulaire plutot com ça :
for($i=0;$i<sizeof($Num);$i++) 
{ 

$NUM=$Num[$i]; 

$r="select * from clients where Num='$NUM'"; 
$rq=mysql_query($r); 

$numero=mysql_result($rq,0,'Num'); 
$N2=mysql_result($rq,0,'Nom'); 
$Nr=mysql_result($rq,0,'Nom_stagiaire'); 
?> 

<form method="post" action="vrai_modif_client.php"> 
      <fieldset> 
       <legend>Coordonnées</legend> 
<!--Infos clients--> 
        <p><label>Nom de la société :</label><b><?php echo $N2; ?></b></p> 
        <p><label>Nom du stagiaire:</label><input name="Nom_stagiaire$i" type="text" maxlength="100" value="<?php echo $Nr; ?>"/></p> 
     </fieldset> 

        <input type="hidden" value="<? echo $numero ?>" name="Num$i" /> 

<?php 
} 

?> 
<!--Bouton envoie--> 
        <p class="formbt"><input type="submit" value="Modifier" name="envoyer" class="bouton"/></p> 

</form> 

par fred9999 » 08 nov. 2006, 14:12

ta 1ere variable : $Num=$_POST['Num'];

correspond a ton num dans la base nom ???

donc si tu as plusieurs lignes qui s'affichent c'es que num n'es pas unique

par pierrecalligaro » 08 nov. 2006, 13:53

la variable num est bien l'identifiant de clients dans ma bdd et il est unique.
j'ai fais des boucles dans mon fichier update mais je n'update que mon dernier client. Peux tu me donner un exemple de boucle qui fonctionnerait.

voici mes 2 fichiers rectifiés.

formulaire:
$Num=$_POST['Num'];

for($i=0;$i<sizeof($Num);$i++)
{

$NUM=$Num[$i];

$r="select * from clients where Num='$NUM'";
$rq=mysql_query($r);

$numero=mysql_result($rq,0,'Num');
$Nr=mysql_result($rq,0,'Nom_stagiaire');
$P=mysql_result($rq,0,'Prenom');
?>

<form method="post" action="vrai_modif_client.php">
      <fieldset>
       <legend>Coordonnées</legend>
<!--Infos clients-->

        <p><label>Nom du stagiaire:</label><input name="Nom_stagiaire" type="text" maxlength="100" value="<?php echo $Nr; ?>"/></p>
        <p><label>Prénom :</label><input name="Prenom" type="text" maxlength="20" value="<?php echo $P; ?>"/></p>
</fieldset>

        <input type="hidden" value="<? echo $numero ?>" name="Num[]" />

<?php
}

?>
<!--Bouton envoie-->
        <p class="formbt"><input type="submit" value="Modifier" name="envoyer" class="bouton"/></p>

</form>
Update:
$num=$_POST['Num'];

$Nr=trim(strtoupper($_POST["Nom_stagiaire"]));
$P=trim(ucfirst(strtolower($_POST["Prenom"])));



$r=" update clients set Nom_stagiaire='$Nr', Prenom='$P' where Num='$num' ";
$rq=mysql_query($r);

mysql_close();

par fred9999 » 08 nov. 2006, 13:33

salut

ta variable num est ton identifiant de clients dans ta bdd???
si oui elle doit etre unique!

tu ne fai pas de boucle dans ton update donc c'es normal qui ne prend que le dernier

il faut aussi que tu change le nom de ta variable nom et nom_stagiaire

de plus tu n'as pas a updater le nom de société parce que tu n'as pas d'input dans ton formulaire y correspondant

par pierrecalligaro » 08 nov. 2006, 13:23

Voici un bout de code de ma page ou je modifie ma base :
$num=$_POST['Num'];

$Nr=trim(strtoupper($_POST["Nom_stagiaire"]));
$N=trim(ucfirst(strtolower($_POST["Nom"])));



$r=" update clients set Nom_stagiaire='$Nr', Nom='$N' where Num='$num' ";
$rq=mysql_query($r);

mysql_close();
Merci

par Vikchill » 08 nov. 2006, 12:32

Et où et comment fais-tu l'update?