Changer une seule valeur dans un tableau
Résolu
desc1988
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
desc1988 Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
desc1988 Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
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'];
}
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:
- Changer une seule valeur dans un tableau
- Changer dns - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
2 réponses
Bonsoir,
dans ton formulaire, il faut que tu passes en champ cache l'id
et tu le récupres dans le scrip d'UDATE:
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() } ?>