Il reste du travail de traduction à effectuer.Il faut définir le mode opératoire pour faire des modifications. Il me semble que tu veux faire des modifications sur le mode d'une feuille de calcul Excel, ce qui n'est pas le plus simple.
Si tu débutes en PHP, il est plus simple de mettre un lien ou un bouton en face de chaque ligne d'afficher une page de modification de la ligne. Tu conserves la page en cours dans des variables de session pour revenir à la liste une fois la modification effectuée.
C'est tout à fait cela.L'objectif, semble-t-il, est d'afficher le contenu d'une table Mysql (ou autre, même combat) en permettant de modifier les valeurs (ou certaines des valeurs) affichées, et en mettant la table à jour lorsqu'on passe à la page suivante.
Oui justement c'est le but recherché, de se balader dans les pages disponibles en enregistrant à chaque fois les modifs s'il en a.Question à 1000 Euros:
Peut-on revenir à la page précédente, et, si oui, doit-on y afficher les valeurs modifiées?
Pour l'instant je le fais pas donc je pense qu'il n'est pas utile de le faire à moins que ce soit simpleQuestion banco:
Doit-on être capable d'annuler et de revenir aux valeurs antérieures?
Code : Tout sélectionner
Si action du bouton "enregistrer"
- mise à jour mysql
- $page = en fonction du champ hidden
sinon
si numéro de page transmis (via lien suivant ou précédent)
$page = page transmises
sinon
$page = 1
fin si
fin si
Affichage de la page suivant $page <?PHP
// la page par défaut est la page 1
$num_page = (isset($_POST['num_page'])) ? $_POST['num_page']: 1;
//il faudrait peut-être mettre des vérifications sur le critère
$critere = $_POST['critere'];
// enregistrements à partir de $limite_inf qui vaut 0 pour la page 1 (contrainte de mysql)
$limite_inf = 25*($num_page-1);
// enregistrements jusqu'à $limite_sup (+25 par exemple)
$decalage = 25;
// à adapter, tout ce qui suit étant lié à une base qui existe chez moi
mysql_connect('localhost','rossignol', '97!=Uyh_yter');
mysql_select_db ('dicos');
if ($num_page > 1) // mise à jour puisqu'on n'est pas en page 1
{
// 2ème ligne juste pour comprendre pourquoi on démarre à 2
$clefs = array_keys($_POST); // ce tableau contient les id des champs
//print_r($clefs); éventuellement mettre un print_r($_POST); et comparer les deux
$i = 2;
for ($i = 2; $i < 27; $i++)
{
$clef = $clefs[$i];
$valeur = $_POST[$clef];
// ici tu modifies ta table en te servant de $clef qui est la valeur de $id dans la table,
//et de $valeur qui est la valeur, ce que je ne fais pas
print "<br> qq ch";
print_r($valeur);
}
}
$requete = "SELECT * from `dico2` where categorie = '$critere' limit $limite_inf, $decalage";
$num_page += 1;
$res = mysql_query($requete);
print "
<form method ='post' action ='test.php'>
<input type = 'hidden' name = 'critere' value ='$critere' />
<input type='text' name = 'num_page' value ='$num_page' />";
$inputs = "";
while ($ligne = mysql_fetch_array($res, MYSQL_ASSOC))
{
$id = $ligne['id'];
$graphie = $ligne['graphie'];
$inputs .= "
<input type = 'text' readonly = 'readonly'value ='$id' /> <!--pour vérifier -->
<input type = 'text' name = '$id' value = '$graphie' /><br />";
}
print"
$inputs
<button type ='submit'> Page suivante (et enregistrer les changements éventuels)</button>
<button type = 'reset'>Annuler modifications</button>
</form>
";
?>