UPDATE SQL

stefcio

Nouveau membre
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
 

zeb

Modérateur
Mais de quoi parles-tu ? De SQL, ça, on a compris.
Mais quelle interface, quel langage, quel code ???
 

stefcio

Nouveau membre
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
 

stefcio

Nouveau membre
ok
donc voilà le code,
il faudra m'excuser pour les redondances possible dans le code, et les lignes sans doute inutile
Code:
<?php 
session_start();
if ($_POST['section']!="") //je mets à jour ma variable section
{
 $_SESSION['section']=$_POST['section'];
 }

if (isset($_SESSION['login'])) { //je verifie le login
	if ($_SESSION['login']!='cpe') 
	{ header("Location: ../index.php");}
; } else { header("Location: ../index.php");}?>

<?php require_once('../Connections/connect.php'); ?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] && (isset($_POST['suivi'])) == "form1")) { //si validation je fais mon update
  $updateSQL = sprintf("UPDATE choix_eleve SET suivi=%s WHERE id_nom_eleve=%s",
				GetSQLValueString($_POST['suivi'], "text"),
                GetSQLValueString($_POST['id_nom_eleve'], "int"));
				
                       
  mysql_select_db($database_connect, $connect);
  $Result1 = mysql_query($updateSQL, $connect) or die(mysql_error());
  $insertGoTo = "ajout_eleve_suivre.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  
}

mysql_select_db($database_connect, $connect);


$query_section = sprintf("SELECT count(*),section_eleve FROM choix_eleve GROUP BY section_eleve HAVING count(*)>=1");
$result_section = mysql_query($query_section, $connect) or die(mysql_error());
$row_result_section = mysql_fetch_assoc($result_section);

$section=$_SESSION['section'];
$query_eleve = "SELECT * FROM choix_eleve WHERE section_eleve='$section' ORDER BY nom_eleve ASC";
$result_eleve = mysql_query($query_eleve, $connect) or die(mysql_error());
$row_result_eleve = mysql_fetch_assoc($result_eleve);

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Gestion des sanction</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
//-->
</script>
<LINK media=screen href="../style_menu.css" type=text/css rel=stylesheet>
<link href="../structure.css" rel="stylesheet" type="text/css">
</head>
<body>
<DIV id=page>
<DIV id=header>
<BR>
<H1>Gestion des élèves</H1>
<DIV class="description">  <p align="center">ADMINISTRATION<strong><br>
  des sanctions</strong></p>
</DIV>
</DIV>
<HR> 
<p align="center">&nbsp;</p>
<script language="JavaScript" type="text/JavaScript">
function formfocus() {
  document.form1.login.focus()
  document.form1.login.select()
}
</script>
  <form method="post" name="form1" action="ajout_eleve_suivre.php">
    <table align="center">
      <tr valign="baseline"> 
        <td>
        <table width="100%"  border="0">
  <tr>
    <td align="right">choix de la section :</td>
    <td align="center">
        <select name="section" id="section2"> //le select concernat la classe
		
		<?php 
		if ($section!=''){ 
		?>
		<option selected value="<?php echo $section?>"><?php echo $section ?></option>
		<?php
		}
		else {
		?>
		<option selected value=""><?php echo 'selectionner une section'?></option>
		<?php
		}
		
       
            do {  
          ?>
          <option value="<?php echo $row_result_section['section_eleve']?>"><?php echo $row_result_section['section_eleve']?>
          </option>
          <?php
            } while ($row_result_section = mysql_fetch_assoc($result_section));
            $rows = mysql_num_rows($result_section);
            if($rows > 0) {
              mysql_data_seek($result_section, 0);
	            $row_result_section = mysql_fetch_assoc($result_section);
            }
         
		 ?>
          </select>
    </td>
	
    <td align="left"><input type="submit" value="valider"></td> //validation de la classe
  </tr>
        </table>
		  </form>
        <br></td>
      </tr>
	  <tr><td>Eleve de la classe</td></tr>
	  <TR> <td>
	  <form onLoad= "formfocus()" method="post" name="form1" action="ajout_eleve_suivre.php">
	  <table border="1" align="center"> //tableau concernant les élèves
  <tr> 
      <td align="center">Nom</td>
      
      <td colspan=>suivi</td> //colonne pour la modification du suivi
    </tr>
    <?php do { ?>
    <tr>
   
      <td class="Style6">
	  <input type="hidden" name="id_nom_eleve" value="<?php echo $row_result_eleve['id_nom_eleve']; ?>">
	  <?php echo $row_result_eleve['nom_eleve']; ?></td>
      
      <td>
	  <select name="suivi" id="suivi2"> //select sur le suivi
		
		
		<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
          <option value="non">non</option>
		  <option value="suivi">suivi</option>
		  <option value="sous contrat">sous contrat</option>
          </select>
          </td>
    </tr>
    <?php } while ($row_result_eleve = mysql_fetch_assoc($result_eleve)); ?>
	 </table></td>
	
 
  </tr>
  <tr><td colspan=2><input type="submit" value="mettre à jour"></td></tr>
      <tr valign="baseline"> 
        <td align="center"><a href="index.php">Retour au Menu CPE </a></td>
      </tr>
	 
    </table>
    <input type="hidden" name="MM_insert" value="form1">
  </form>
<script> formfocus(); </script>

  <p>&nbsp;</p>
<DIV id=footer></DIV>
</DIV>
</body>
</html>
merci d'avance
 

zeb

Modérateur
( 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. )
 

Johan_et_Pirlouit

Grand Maître
■ des digression et autres commentaires sur ta façon de programmer
(Oui mais non, là je ne suis pas en forme :o ......... )





( ......... :D)


(et non, je n'ai pas pris ça spécialement pour moi ;))


Sur ce, je ne suis pas fort en SQL et pas très non plus en PHP :ange:, donc ->[]..

:merci:
 

zeb

Modérateur
( :D )

Bon, quelqu'un de sérieux (à ne pas prendre ni pour Johan ni pour Pirluit) pour aider stefcio ?
 

marsien

Grand Maître
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".
 

stefcio

Nouveau membre
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
 

boub popsyteam

Grand Maître
Bon alors comme ne l'as pas dit J&P:

Code:
<!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).
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 134
Messages
6 718 062
Membres
1 586 394
Dernier membre
Manoushk
Partager cette page
Haut