Se connecter avec
S'enregistrer | Connectez-vous

UPDATE SQL

Dernière réponse : dans Programmation

bonjour :bounce: 
mes connaissances en sql sont celle d'un débutant et je rencontre un petit souci:
j'ai créer une table avec dedans: id_nom, nom, classe,suivi
en gros je souhaite mettre à jours le champs suivi de la manière suivante,
faire afficher tout les noms étant dans la même classe dans un tableau, ça j'y arrive,
la dernière colone de ce tableau étant consacré au champs suivi, je donne la possibilité à l'utilisateur de modifier ce champs avec un select, ça j'y arrive aussi
en bas du tableau je met un bouton mettre à jour, ça j'y arrive aussi ;) .
mon pb est le suivant,
la mise à jours ne fonctionne que pour le dernier nom affiché :??:  ?????
comment faire pour faire fonctionner le UPDATE pour toutes les lignes???
Merci d'avance
Stefcio

Autres pages sur : update sql

Lassé par la pub ? Créez un compte

bonsoir
désolé pour les imprécisions je reprends depuis le début en espérant être plus clair cette fois ci.
mon projet est un site web de suivi, langage utilisé, html, php, mysql.
ma table est la suivante: id_nom, nom, classe, suivi.
le champs suivi à trois valeurs possible non, oui ou sous contrat.
l'affichage de l'utilisateur est trier par classe donc:
il obtient un tableau avec tout les nom appartenant à la même classe.
ma dernière colonne, je l'ai consacré à la modification du champs 'suivi'.
j'ai un bouton en bas du tableau pour la mise à jour des données.
mon idée était la suivante, permettre à l'utilisateur de modifier plusieurs champs 'suivi' et de les mettre à jour dans ma base
j'arrive à obtenir l'affichage de toutes mes données ainsi que du select de ma dernière colonne.
mais lorsque je fais ma mise à jours, il n'y a que la dernière ligne de mon tableau qui est updater!!
comment faire pour mettre à jour toutes les lignes de mon tableau???
Merci d'avance.
Stefcio

ok
donc voilà le code,
il faudra m'excuser pour les redondances possible dans le code, et les lignes sans doute inutile
  1. <?php
  2. session_start();
  3. if ($_POST['section']!="") //je mets à jour ma variable section
  4. {
  5. $_SESSION['section']=$_POST['section'];
  6. }
  7.  
  8. if (isset($_SESSION['login'])) { //je verifie le login
  9. if ($_SESSION['login']!='cpe')
  10. { header("Location: ../index.php");}
  11. ; } else { header("Location: ../index.php");}?>
  12.  
  13. <?php require_once('../Connections/connect.php'); ?>
  14. <?php
  15. function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
  16. {
  17. $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
  18.  
  19. switch ($theType) {
  20. case "text":
  21. $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  22. break;
  23. case "long":
  24. case "int":
  25. $theValue = ($theValue != "") ? intval($theValue) : "NULL";
  26. break;
  27. }
  28. return $theValue;
  29. }
  30.  
  31. $editFormAction = $_SERVER['PHP_SELF'];
  32. if (isset($_SERVER['QUERY_STRING'])) {
  33. $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
  34. }
  35.  
  36. if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] && (isset($_POST['suivi'])) == "form1")) { //si validation je fais mon update
  37. $updateSQL = sprintf("UPDATE choix_eleve SET suivi=%s WHERE id_nom_eleve=%s",
  38. GetSQLValueString($_POST['suivi'], "text"),
  39. GetSQLValueString($_POST['id_nom_eleve'], "int"));
  40.  
  41.  
  42. mysql_select_db($database_connect, $connect);
  43. $Result1 = mysql_query($updateSQL, $connect) or die(mysql_error());
  44. $insertGoTo = "ajout_eleve_suivre.php";
  45. if (isset($_SERVER['QUERY_STRING'])) {
  46. $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
  47. $insertGoTo .= $_SERVER['QUERY_STRING'];
  48. }
  49.  
  50. }
  51.  
  52. mysql_select_db($database_connect, $connect);
  53.  
  54.  
  55. $query_section = sprintf("SELECT count(*),section_eleve FROM choix_eleve GROUP BY section_eleve HAVING count(*)>=1");
  56. $result_section = mysql_query($query_section, $connect) or die(mysql_error());
  57. $row_result_section = mysql_fetch_assoc($result_section);
  58.  
  59. $section=$_SESSION['section'];
  60. $query_eleve = "SELECT * FROM choix_eleve WHERE section_eleve='$section' ORDER BY nom_eleve ASC";
  61. $result_eleve = mysql_query($query_eleve, $connect) or die(mysql_error());
  62. $row_result_eleve = mysql_fetch_assoc($result_eleve);
  63.  
  64. ?>
  65. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "<a href="http://www.w3.org/TR/html4/loose.dtd" target="_blank">http://www.w3.org/TR/html4/loose.dtd</a>">
  66. <html>
  67. <head>
  68. <title>Gestion des sanction</title>
  69. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  70. <script language="JavaScript" type="text/JavaScript">
  71. <!--
  72. function MM_goToURL() { //v3.0
  73. var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  74. for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
  75. }
  76. //-->
  77. </script>
  78. <LINK media=screen href="../style_menu.css" type=text/css rel=stylesheet>
  79. <link href="../structure.css" rel="stylesheet" type="text/css">
  80. </head>
  81. <body>
  82. <DIV id=page>
  83. <DIV id=header>
  84. <BR>
  85. <H1>Gestion des élèves</H1>
  86. <DIV class="description"> <p align="center">ADMINISTRATION<strong><br>
  87. des sanctions</strong></p>
  88. </DIV>
  89. </DIV>
  90. <HR>
  91. <p align="center"> </p>
  92. <script language="JavaScript" type="text/JavaScript">
  93. function formfocus() {
  94. document.form1.login.focus()
  95. document.form1.login.select()
  96. }
  97. </script>
  98. <form method="post" name="form1" action="ajout_eleve_suivre.php">
  99. <table align="center">
  100. <tr valign="baseline">
  101. <td>
  102. <table width="100%" border="0">
  103. <tr>
  104. <td align="right">choix de la section :</td>
  105. <td align="center">
  106. <select name="section" id="section2"> //le select concernat la classe
  107.  
  108. <?php
  109. if ($section!=''){
  110. ?>
  111. <option selected value="<?php echo $section?>"><?php echo $section ?></option>
  112. <?php
  113. }
  114. else {
  115. ?>
  116. <option selected value=""><?php echo 'selectionner une section'?></option>
  117. <?php
  118. }
  119.  
  120.  
  121. do {
  122. ?>
  123. <option value="<?php echo $row_result_section['section_eleve']?>"><?php echo $row_result_section['section_eleve']?>
  124. </option>
  125. <?php
  126. } while ($row_result_section = mysql_fetch_assoc($result_section));
  127. $rows = mysql_num_rows($result_section);
  128. if($rows > 0) {
  129. mysql_data_seek($result_section, 0);
  130. $row_result_section = mysql_fetch_assoc($result_section);
  131. }
  132.  
  133. ?>
  134. </select>
  135. </td>
  136.  
  137. <td align="left"><input type="submit" value="valider"></td> //validation de la classe
  138. </tr>
  139. </table>
  140. </form>
  141. <br></td>
  142. </tr>
  143. <tr><td>Eleve de la classe</td></tr>
  144. <TR> <td>
  145. <form onLoad= "formfocus()" method="post" name="form1" action="ajout_eleve_suivre.php">
  146. <table border="1" align="center"> //tableau concernant les élèves
  147. <tr>
  148. <td align="center">Nom</td>
  149.  
  150. <td colspan=>suivi</td> //colonne pour la modification du suivi
  151. </tr>
  152. <?php do { ?>
  153. <tr>
  154.  
  155. <td class="Style6">
  156. <input type="hidden" name="id_nom_eleve" value="<?php echo $row_result_eleve['id_nom_eleve']; ?>">
  157. <?php echo $row_result_eleve['nom_eleve']; ?></td>
  158.  
  159. <td>
  160. <select name="suivi" id="suivi2"> //select sur le suivi
  161.  
  162.  
  163. <option selected value="<?php echo $row_result_eleve['suivi']?>"><?php echo $row_result_eleve['suivi']?></option> //premiere ligne du select, le champs de ma base
  164. <option value="non">non</option>
  165. <option value="suivi">suivi</option>
  166. <option value="sous contrat">sous contrat</option>
  167. </select>
  168. </td>
  169. </tr>
  170. <?php } while ($row_result_eleve = mysql_fetch_assoc($result_eleve)); ?>
  171. </table></td>
  172.  
  173.  
  174. </tr>
  175. <tr><td colspan=2><input type="submit" value="mettre à jour"></td></tr>
  176. <tr valign="baseline">
  177. <td align="center"><a href="index.php">Retour au Menu CPE </a></td>
  178. </tr>
  179.  
  180. </table>
  181. <input type="hidden" name="MM_insert" value="form1">
  182. </form>
  183. <script> formfocus(); </script>
  184.  
  185. <p> </p>
  186. <DIV id=footer></DIV>
  187. </DIV>
  188. </body>
  189. </html>

merci d'avance
Expert Programmation

( C'est pourquoi un extrait de code est plus judicieux que de tout balancer. Tu t'exposes en effet à deux choses :
  • des digression et autres commentaires sur ta façon de programmer
  • faire fuir, avec 189 lignes de code (!), une partie de ceux qui pourraient t'aider. )
    Expert Programmation

    Bon, j'ai pas lu tout le code, car c'est long^^

    Mais d'après ce que j'ai compris de ton problème, tu veux inscrire d'un coup plusieurs instructions sur plusieurs lignes d'une table sql ?

    Une possibilité serait de récupérer les données postées dans ton formulaire sous la forme d'un tableau php, puis de parcourir chaque ligne de ce tableau avec une boucle. A chaque passage dans la boucle, tu envoies tes données dans ta table.

    Pour parcourir le tableau php, regarde du côté de "foreach".

    Merci marcien pour tes infos, je m'orientais justement sur cette solution.
    j'ai un collègue qui m'a fait voir une solution grâce à l'utilisation de ajax.
    merci ZEB pour tes précieux conseils ;p
    merci pour ton intervention Johan_et_Pirlouit :p  ;) 
    bref je vous tiens informé de la poursuite du projet.....
    PS: pour les commentaires sur le code, je suis éventuellement preneur de bon conseil, car comme dit plus haut je ne suis qu'un débutant ;) 
    Stefcio

    Bon alors comme ne l'as pas dit J&P:

    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">


    C'est finis le HTML 4.01 ... on en est au XHTML 1 depuis 2000 ...

    Sinon tu mélanges des balises en majuscules (interdit en xhtml) et des balises en minuscules ...

    L'avantage du XHTML c'est de favorisé la séparation du fond de la forme par l'emploie de feuilles de styles (les CSS).
    Lassé par la pub ? Créez un compte