UPDATE SQL
Dernière réponse : dans Programmation
bonjour
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
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
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
merci d'avance
donc voilà le code,
il faudra m'excuser pour les redondances possible dans le code, et les lignes sans doute inutile
<?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" "<a href="http://www.w3.org/TR/html4/loose.dtd" target="_blank">http://www.w3.org/TR/html4/loose.dtd</a>">
<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"> </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> </p>
<DIV id=footer></DIV>
</DIV>
</body>
</html>
merci d'avance
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".
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
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
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
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:
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).
<!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
......... )
)
, donc ->[]..