Changer une seule valeur dans un tableau

Résolu/Fermé
desc1988 Messages postés 9 Date d'inscription lundi 10 mars 2008 Statut Membre Dernière intervention 17 mars 2008 - 12 mars 2008 à 22:35
desc1988 Messages postés 9 Date d'inscription lundi 10 mars 2008 Statut Membre Dernière intervention 17 mars 2008 - 13 mars 2008 à 19:34
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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
12 mars 2008 à 23:08
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 Date d'inscription lundi 10 mars 2008 Statut Membre Dernière intervention 17 mars 2008 1
13 mars 2008 à 19:34
C'est super...

Impeccable, merci beaucoup pour votre aide.

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

Encore merci.
-1