Vous n'êtes pas identifié(e).
Bonjour,
J'ai un petit programme qui va affiche les données d'une table et que je peux modifier ligne par ligne.
[c]
<?php
$param = appel_parametres(); // parametres du jeu
if ($param['actif'] == 'O'){
$bouton = 'disabled';
}else{
$bouton = 'enabled';
}
if(isset($_REQUEST['Submit'])){
$query = "UPDATE ".$_PRE."clubs SET championnat=".$_POST['championnat'].", actif=".$_POST['actif']." WHERE id_club=".$_POST['id_club']."";
//$result = mysql_query($query) or die('Erreur SQL !'.$sql.''.mysql_error());
echo $query;
}
?>
<div class='panel'>
<p class='rouge' align='center'>Gestion des équipes des 3 championnats</p>
<table width='100%'>
<form action='creation_clubs.php' name='formSaisie' method='POST'>
<?php
$query = "SELECT id_club, club, nom_long, championnat, actif FROM ".$_PRE."clubs ORDER BY championnat, club";
$result = mysql_query($query) or die('Erreur SQL !'.$sql.''.mysql_error());
while($row = mysql_fetch_array($result))
{
echo "<tr>
<td class='points' width='180'>".$row['1']."</td>
<td class='gros_titre'>".$row['2']."</td>
<td class='points'>".$row['3']."</td>
<td width='60'><select name='championnat'>
<option value='A'>A</option>
<option value='B'>B</option>
<option value='F'>F</option>
</select>
</td>
<td class='points'>".$row['4']."</td>
<td width='60'><select name='actif'>
<option value='0'>0</option>
<option value='1'>1</option>
</select>
</td>
<td>
<input type='hidden' name='id_club' value='".$row['0']."' />
<input type='Submit' name='Submit' $bouton value='Modif' />
</td>
</tr>";
}
?>
</table>
</form>
</div>
<?php include_once ('bas.php'); ?>
[/c]
Mon problème est que mon tableau s'affiche entièrement avant les modifications.
De ce fait quand je récupère les valeurs championnat, actif et id_club, ce sont les valeurs du dernier enregistrement de la table.
J'avais déjà fait quelque chose de ce style sous forme de tableau 'id_club[]', mais je ne me souviens plus comment.
Quelqu'un peut m'aider svp ?
Hors ligne
Finalement j'ai trouvé.
Dans mon cas, chaque enregistrement est un formulaire puisque le bouton sumbit apparait à chaque ligne.
J'ai donc tout simplement déplacé mes balises <form> et </form> pour les insérer dans mon while comme ceci:
[c]
while($row = mysql_fetch_array($result))
{
echo "<form action='creation_clubs.php' name='formSaisie' method='POST'>";
echo "<tr>
<td class='points' width='180'>".$row['1']."</td>
<td class='gros_titre'>".$row['2']."</td>
<td class='points'>".$row['3']."</td>
<td width='60'><select name='championnat'>
<option value='A'>A</option>
<option value='B'>B</option>
<option value='F'>F</option>
</select>
</td>
<td class='points'>".$row['4']."</td>
<td width='60'><select name='actif'>
<option value='0'>0</option>
<option value='1'>1</option>
</select>
</td>
<td>
<input type='hidden' name='id_club' value='".$row['0']."'>
<input type='Submit' name='Submit' $bouton value='Modif' />
</td>
</tr>";
echo "</form>";
}
[/c]
Hors ligne