Changer une seule valeur dans un tableau

Résolu
desc1988 Messages postés 9 Statut Membre -  
desc1988 Messages postés 9 Statut Membre -
Bonjour,
Mon problème actuel est le suivant :

J'ai un tableau avec un numéro d'étudiant, un nom, une date d'absence et une colonne justifié.Pour chaque ligne du tableau est associé un ID.


La colonne justifié est de type enum dans mysql et lorsque :
justifié=0 j'affiche NON.
justifié=1 j'affiche OUI.

La colonne justifié peu être modifiée car j'ai mis des balise <form> et <submit>

Mon script actuel va modifier dans la base de données la valeur de "justifié" lorsque la personne va marquer "oui".

PROBLÈME : toutes les valeurs sont modifiées=> Pour tous les étudiants justifié=1.


Voici mon script (PS :je ne sait pas quoi mettre dans le WHERE) :

<?php

if($_POST['justifie']='oui')

mysql_connect("localhost","root","");
mysql_select_db("gestion_absence");

mysql_query("UPDATE absences SET justif='1' WHERE ?????????");
mysql_close()
?>

<?php
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("gestion_absence"); // Sélection de la base coursphp

$reponse = mysql_query("SELECT * FROM absences WHERE justif=1 ORDER BY classe "); // Requête SQL


// On fait une boucle pour lister tout ce que contient la table :
$classeprecedente=NULL;


while ($donnees = mysql_fetch_array($reponse))
{

if ($donnees['classe'] != $classeprecedente)
{
?>

<p>
<caption>Classe: <?php echo $donnees['classe']; ?></caption>
<table class="sortable">

<tr>
<th>Numero d'étudiant</th>
<th>Nom/Prenom</th>
<th>date d'absence</th>
<th>Justifié</th>
</tr>

<tr>

<td><?php echo $donnees['numero'] ?></td>
<td><?php echo $donnees['np'] ?></td>
<td><?php echo $donnees['date'] ?></td>
<td><form action="./justif_manu.php" method="post">
<p>
<input type="text" name="justifie" value="non" />

<input type="submit" value="Valider" />
</p>
</form>
</td>
</tr>
</table>
</p>

<?php

}
else
{
?>

<table class="sortable">
<tr>

<td><?php echo $donnees['numero'] ?></td>
<td><?php echo $donnees['np'] ?></td>
<td><?php echo $donnees['date'] ?></td>
<td><form action="./justif_manu.php" method="post">

<input type="text" name="justifie" value="non" />
<input type="submit" value="Valider" />

</form>
</td>
</tr>
</table>


<?php

}
$classeprecedente=$donnees['classe'];
}
A voir également:

2 réponses

Alain_42 Messages postés 5413 Statut Membre 894
 
Bonsoir,

dans ton formulaire, il faut que tu passes en champ cache l'id


<input type="text" name="justifie" value="non" />
<input type="hidden" name="ID" value="<?php echo  $donnees['ID'];?>" />
<input type="submit" value="Valider" /> 



et tu le récupres dans le scrip d'UDATE:

<?php

if($_POST['justifie']=='oui'){//la il te manquait les accolades et le double = pour le test
$ID=$_POST['ID'];
mysql_connect("localhost","root","");
mysql_select_db("gestion_absence");

mysql_query("UPDATE absences SET justif='1' WHERE ID='".$ID."'");
mysql_close()
}
?> 

-1
desc1988 Messages postés 9 Statut Membre 1
 
C'est super...

Impeccable, merci beaucoup pour votre aide.

Décidément CCM est très efficace.

Encore merci.
-1