Tom's Guide > Forum > Programmation > Update plusieur camps en meme temps

Update plusieur camps en meme temps

Forum Programmation : Update plusieur camps en meme temps

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour,

j'arrive pas à trouver la solution pour modifier tous mon tableau avec un seul bouton pour l'instant je n'arrive qu' à faire du ligne par ligne

abonnement.php

Code :
  1. <?php
  2. /*___________________AFFICHAGE_DES_ENREGISTREMENTS_____________________ */
  3. $result = MYSQL_QUERY("select * from abonnement" );
  4. $number = MYSQL_NUM_ROWS($result);
  5. $i=0;
  6. echo "<table class='entete_abonnement'><tr>
  7.     <td colspan='3' class='titre_abonnement'>Abonnement à l'année</td>
  8.   </tr><tr>
  9.     <td class='entete_type'>&nbsp;</td>
  10.     <td class='entete_prix'>Individuel</td>
  11.     <td class='entete_prix'>Couple</td>
  12.     </tr>";
  13. while ($i<$number) {
  14.     $id=mysql_result($result,$i,"id" );
  15.     $TypeAbonnement=mysql_result($result,$i,"TypeAbonnement" );  if ($TypeAbonnement=="" ) {$TypeAbonnement="-";}
  16.     $Individuel=mysql_result($result,$i,"Individuel" ); if ($Individuel=="" ) {$Individuel="-";}
  17.     $Couple=mysql_result($result,$i,"Couple" );if ($Couple=="" ) {$Couple="-";}
  18.     echo "<tr>
  19.         <td class='contenu_type'>$TypeAbonnement</td>
  20.         <td class='contenu_prix'>$Individuel</td>
  21.         <td class='contenu_prix'>$Couple</td><td><a href='modif.php?id=$id'>Modifier</a></td></tr>";
  22.     $i++;
  23.     }
  24. echo "</table>";
  25. MYSQL_CLOSE();
  26. ?>



modif.php

Code :
  1. <?php
  2. /* _________________RECUP_DES_DONNEES____________________ */
  3.   while (list($var, $value) = each($HTTP_GET_VARS))
  4.     {
  5.       $tab_asso["$var"] = $value;
  6.     }
  7. switch ($tab_asso[modifier]){
  8. case 2;
  9. $requete=mysql_query("update abonnement set TypeAbonnement='$TypeAbonnement',Individuel='$Individuel',Couple='$Couple' where id=$id",$connecte);
  10. echo "<h1 align=center>Mise à jour effectuée<br><br><a href='abonnement.php'>Retour</a>";
  11. break;
  12. default;
  13. $result=mysql_query("select * from abonnement where id=$id",$connecte);
  14. $number = mysql_num_rows($result);
  15.     $TypeAbonnement=mysql_result($result,$i,"TypeAbonnement" );
  16.     $Individuel=mysql_result($result,$i,"Individuel" );
  17.     $Couple=mysql_result($result,$i,"Couple" );
  18. echo "<blockquote><table border=0><form method='get' action='modif.php'><input type='hidden' name=modifier value=2><input type='hidden' name=id value='$id'>
  19.     <td align=right>Type</td><td><input type='text' name=TypeAbonnement value='$TypeAbonnement' size=30 maxlenght=50></td>
  20.     <td align=right>Individuel</td><td><input type='text' name=Individuel value='$Individuel' size=30 maxlenght=50></td><tr>
  21.     <td align=right>Couple</td><td><input type='text' name=Couple value='$Couple' size=30 maxlenght=30></td><tr>
  22.       </table></blockquote>";
  23. echo "<table align=center><tr><td><input type='submit' value='Modifier'></td></form><td><form method=get action='abonnement.php'><input type=submit value='Annuler'></td></form></table>";
  24. break; }
  25. $result=mysql_close($connecte);
  26. ?>



Merci pour votre aide

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

salut,
à quoi ca sert de redefinir HTTP_GET_VARS en tab_asso?

pour modifier plusieurs ligne en même temps, il faudrait utiliser les tableaux dans un formulaire regroupant toutes les lignes: http://php.benscom.com/manual/fr/f [...] tml.arrays

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

Salut coca
je comprend pas bien la procédure tu peux m'en dire un peu plus stp

c'est donc possible ce que j'aimerai faire ?

Répondre à marquito

Code :
  1. <form>
  2.   <table>
  3.   <tr>
  4.     <input type='hidden' name='id[]' value='1'/>
  5.     <td><input type='text' name='nom[]'/></td>
  6.     <td><input type='text' name='prenom[]'/></td>
  7.   </tr>
  8.   <tr>
  9.     <input type='hidden' name='id[]' value='2'/>
  10.     <td><input type='text' name='nom[]'/></td>
  11.     <td><input type='text' name='prenom[]'/></td>
  12.   </tr>
  13.   <tr>
  14.     <input type='hidden' name='id[]' value='3'/>
  15.     <td><input type='text' name='nom[]'/></td>
  16.     <td><input type='text' name='prenom[]'/></td>
  17.   </tr>
  18.   <tr><td colspan="2"><input type='submit' value='Envoyer'/></td></tr>
  19.   </table>
  20. </form>
  21. <pre>
  22. <?
  23. if (!empty ($_GET['id']) && is_array ($_GET['id']))
  24. {
  25.   for ($i=0; $i < count ($_GET['id']); $i++)
  26.   {
  27.     printf ("ID: %s\tNom: %s\tPrénom: %s\n",
  28.     $_GET['id'][$i],
  29.     $_GET['nom'][$i],
  30.     $_GET['prenom'][$i]);
  31.   }
  32. }
  33. ?>
  34. </pre>


voilà un exemple, à toi de l'adapter

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

Merci coca
je vais essayer de ne pas etre trop lourd !!
mais en faite il faut que j'adapte et remplace le code qui tu m'a envoyé
par celui que j'ai (modif.php) en gardant l'autre tel quel?
J'ai essayé mais les valeur ne s'affiche pas dans les champs !!!


Répondre à marquito

c'est pas une question d'être lourd, c'est une question de programmation...
dans ton programme, tu as pour chaque ligne:
- un id
- un type d'abonnement
- individuel
- couple
si tu veux tous les modifier d'un coup, il te faut les mettre dans des zones de formulaires, puis envoyer le formulaire.

 

le script qui recevra le formulaire aura un tableau pour chaque valeur (colonne). exemple, la premiere ligne sera les indices 0 ([0]) des tableaux que tu auras déclaré.

 

pour chaque indice de tous les tableaux, il te faut appliquer la requete de mise à jour!

 

pour mettre ca en place, il te suffit de connaitre les base de php:
Tuto php du site du zéro
exemple pratique de phpdébutant
et enfin le manuel de php

 

si tu tentes un truc, poste le code qu'on regarde de quoi ca a l'air


Message édité par coca25 le 06-09-2007 à 13:59:34
------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

Ok ! et merci pour ta patience ;-)

mais dis moi ma première page abonnement.php est est bonne comme ça?
j'aurai juste à laisser un bonton envoyer sur modif.php et c'est sur modif.php que je dois adapter le code que tu m'as envoyé..?

Répondre à marquito

Bon je suis tes conseils à la lettre enfin j'espère ne pas me tromper

Citation :

si tu veux tous les modifier d'un coup, il te faut les mettre dans des zones de formulaires, puis envoyer le formulaire.



Code :
  1. <!-------------------------------- TABLEAU ABONNEMENT -------------------------------->
  2. <form action="modif_abonnement.php" method="post">
  3. <table align=center width=786 bgcolor="#FFFFFF">
  4. </tr>
  5. <td align=center width=80 bgcolor="#DC143C">Type</td>
  6. <td align=center width=80 bgcolor="#DC143C">Individuel</td>
  7. <td align=center width=80 bgcolor="#DC143C">Couple</td>
  8. </tr>
  9. <?php
  10. mysql_select_db($bdd);
  11. $select = "SELECT * FROM abonnement";
  12. $result = mysql_query($select,$connection);
  13. $total = mysql_num_rows($result);
  14. $i=0;//on initialise l'index
  15. while ($row = mysql_fetch_array($result)){
  16. $id = $row['ID'];
  17. $TypeAbonnement=$row['TypeAbonnement'];
  18. $Individuel= $row['Individuel'];
  19. $Couple=$row['Couple'];
  20. echo "<tr>";
  21. echo "<td align=center bgcolor='#DCDCDC'><input type='text' name='TypeAbonnement[$i]' value='$TypeAbonnement'/></td>";
  22. echo "<td align=center bgcolor='#DCDCDC'><input type='text' name='Individuel[$i]' value='$Individuel' /></td>";
  23. echo "<td align=center bgcolor='#DCDCDC'><input type='text' name='$Couple[$i]' value='$Couple' /></td>";
  24. echo "</tr>\n";
  25. $i++;// on incrémente l'index
  26. }
  27. // on libère le résultat
  28. mysql_free_result($result);
  29. mysql_close(); // Déconnexion de MySQL
  30. ?>
  31. </table>
  32. <input type="hidden" name="nb_lignes" value="<?php echo $i ?>">
  33. <input type="submit" name="valid_liste" value="VALIDER" >
  34. </form>
  35. <!-------------------------------- FIN TABLEAU ABONNEMENT -------------------------------->


Comme ça ? Je brule ?

Maintenant que j'ai un unique bouton je n'ai pas besoin d'une autre page pour l'Update j'ai dus mal avec cet update :sarcastic:

Répondre à marquito

1. indente ton code, on y verra plus clair ;)
2. mon code était fonctionnel, tu l'as testé?
je demande ca parce que je ne comprends pas comment tu en es arrivé à érire ceci:

Citation :

name='TypeAbonnement[$i]'


ou

Citation :

name='$Couple[$i]'

 

3. j'ai l'mpression que tu as pas compris le principe.
comment veux tu que php (enfin le code que tu vas mettre) sache quelle ligne (id?) il doit modifier?


Message édité par coca25 le 06-09-2007 à 18:00:19
------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

si bien sur j'ai testé ta méthode mais les résultats ne s'affiche pas ?
tu me diras que c'est certainement normal !

Je dois oublié encore qlq chose

Code :
  1. <?php
  2. mysql_select_db($bdd);
  3. $select = "SELECT * FROM abonnement";
  4. $result = mysql_query($select,$connection);
  5. $total = mysql_num_rows($result);
  6. ?>
  7. <form>
  8. <table>
  9. <tr>
  10. <input type='hidden' name='id[]' value='1'/>
  11. <td><input type='text' name='TypeAbonnement[]'/></td>
  12. <td><input type='text' name='Individuel[]'/></td>
  13. </tr>
  14. <tr>
  15. <input type='hidden' name='id[]' value='2'/>
  16. <td><input type='text' name='TypeAbonnement[]'/></td>
  17. <td><input type='text' name='Individuel[]'/></td>
  18. </tr>
  19. <tr>
  20. <input type='hidden' name='id[]' value='3'/>
  21. <td><input type='text' name='TypeAbonnement[]'/></td>
  22. <td><input type='text' name='Individuel[]'/></td>
  23. </tr>
  24. <tr><td colspan="2"><input type='submit' value='Envoyer'/></td></tr>
  25. </table>
  26. </form>
  27. <pre>
  28. <?
  29. if (!empty ($_GET['id']) && is_array ($_GET['id']))
  30. {
  31. for ($i=0; $i < count ($_GET['id']); $i++)
  32. {
  33. printf ("ID: %s\tTypeAbonnement: %s\tIndividuel: %s\n",
  34. $_GET['id'][$i],
  35. $_GET['TypeAbonnement'][$i],
  36. $_GET['Individuel'][$i]);
  37. }
  38. }
  39. ?>
  40. </pre>



Donc j'ai encore tout faux !
je comprends vraiment rien ql nul !

moi je pensais qu'il fallait les lister pour les modifier ensuite......

Mon code n'est pas bon alors ?


Message édité par marquito le 06-09-2007 à 21:17:47
Répondre à marquito
Tom's Guide > Forum > Programmation > Update plusieur camps en meme temps
Aller à :

Il y a 2194 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens