Se connecter / S'enregistrer
Votre question

Update plusieur camps en meme temps

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
6 Septembre 2007 10:41:56

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


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


Merci pour votre aide

Autres pages sur : update plusieur camps temps

6 Septembre 2007 12:00:34

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 ?
Contenus similaires
6 Septembre 2007 12:24:23

  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
6 Septembre 2007 13:06:03

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 !!!


6 Septembre 2007 13:56:30

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
6 Septembre 2007 14:40:29

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é..?
6 Septembre 2007 17:42:07

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.


  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.  
  15. $i=0;//on initialise l'index
  16. while ($row = mysql_fetch_array($result)){
  17. $id = $row['ID'];
  18. $TypeAbonnement=$row['TypeAbonnement'];
  19. $Individuel= $row['Individuel'];
  20. $Couple=$row['Couple'];
  21. echo "<tr>";
  22. echo "<td align=center bgcolor='#DCDCDC'><input type='text' name='TypeAbonnement[$i]' value='$TypeAbonnement'/></td>";
  23. echo "<td align=center bgcolor='#DCDCDC'><input type='text' name='Individuel[$i]' value='$Individuel' /></td>";
  24. echo "<td align=center bgcolor='#DCDCDC'><input type='text' name='$Couple[$i]' value='$Couple' /></td>";
  25. echo "</tr>\n";
  26. $i++;// on incrémente l'index
  27. }
  28. // on libère le résultat
  29. mysql_free_result($result);
  30. mysql_close(); // Déconnexion de MySQL
  31. ?>
  32. </table>
  33. <input type="hidden" name="nb_lignes" value="<?php echo $i ?>">
  34. <input type="submit" name="valid_liste" value="VALIDER" >
  35. </form>
  36. <!-------------------------------- 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: 
6 Septembre 2007 17:59:30

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?
6 Septembre 2007 20:20:58

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
  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. ?>
  8. <form>
  9. <table>
  10. <tr>
  11. <input type='hidden' name='id[]' value='1'/>
  12. <td><input type='text' name='TypeAbonnement[]'/></td>
  13. <td><input type='text' name='Individuel[]'/></td>
  14. </tr>
  15.  
  16. <tr>
  17. <input type='hidden' name='id[]' value='2'/>
  18. <td><input type='text' name='TypeAbonnement[]'/></td>
  19. <td><input type='text' name='Individuel[]'/></td>
  20. </tr>
  21.  
  22. <tr>
  23. <input type='hidden' name='id[]' value='3'/>
  24. <td><input type='text' name='TypeAbonnement[]'/></td>
  25. <td><input type='text' name='Individuel[]'/></td>
  26. </tr>
  27.  
  28. <tr><td colspan="2"><input type='submit' value='Envoyer'/></td></tr>
  29. </table>
  30. </form>
  31.  
  32. <pre>
  33. <?
  34. if (!empty ($_GET['id']) && is_array ($_GET['id']))
  35. {
  36. for ($i=0; $i < count ($_GET['id']); $i++)
  37. {
  38. printf ("ID: %s\tTypeAbonnement: %s\tIndividuel: %s\n",
  39. $_GET['id'][$i],
  40. $_GET['TypeAbonnement'][$i],
  41. $_GET['Individuel'][$i]);
  42. }
  43. }
  44. ?>
  45. </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 ?
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS