Le principe général de fonctionnement est relativement simple.
Lorsque tu enregistres une page dans ta base de donnée, en principe, si tu as correctement conçu ta base, à chaque page correspond une clé primaire.
Pour sélectionner la page à mettre à jour, tu dois donc créer une liste dynamique comportant cette clé de façon à ce qu'en faisant une sélection tu ailles chercher directement le contenu correspondant.
Donc dans un premier temps, tu devras créer une requête listant les clés et les titres avec un code dans ce style:
<?php
$sql1 = "SELECT `page_id`, `page_nom` FROM `tbl_pages`";
// ...
/* ... code de connexion et d'exécution de la requête */
// ...
?>
<form id="form_maj_pages" action="maj_pages.php" method="post">
<select name="listepages" id="listepages" onchange="document.forms['form_maj_pages'].submit();">
<?php
while(($ligne = mysql_fetch_assoc($exec)) != false)
{
?>
<option value="<?php echo($ligne['page_id']); ?>"><?php echo($ligne['page_nom']); ?></option>
<?php
}
?>
</select>
</form>
À partir de là, tu sélectionnes une page dans la liste, avec l'évènement onchange, le formulaire est automatiquement soumis et la page de mise à jour (que tu devras indiquer dans l'attribut action de la balise form) sera chargée.
Dans ta page de traitement, tu récupèreras l'identifiant de la page à modifier : c'est l'attribut value de ta balise option. À partir dlà, tu peux créer une requête SQL pour récupérer les informations propres à cet identifiant. Tu ajoutes ensuite le formulaire de modification et dans les éléments, tu ajoutes les valeurs récupérées. Très sommairement, ça donne ça :
<?php
$page_id = isset($_POST['listepages']) ? $_POST['listepages'] : null;
/* Au cas où on ouvrirait directement cette page, il n'y aura pas
d'identifiant, donc on devra rediriger vers la page de sélection, sinon,
on interroge la base et on affiche le formulaire */
if(!isset($page_id))
{
/* Si l'identifiant n'xiste pas, on réexpédie vers la page listant les pages disponibles */
header("Location: page_listemaj.php");
}
else
{
$sql2 = "SELECT `page_nom`, `page_titre`, `page_contenu` ".
"FROM tbl_pages ".
"WHERE `page_id` = ". $page_id .";";
// ...
/* ... code de connexion et d'exécution de la requête */
// ...
if(($ligne = mysql_fetch_assoc($exec)) != false)
{
?>
<form id="maj_page" action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post">
<fieldset>
<label>Nom de la page : <input name="nom_page" id="nom_page" value="<?php echo($ligne['page_nom']); ?>" /></label><br />
<label>Titre de la page : <input name="titre_page" id="titre_page" value="<?php echo($ligne['page_titre']); ?>" /></label><br />
<textarea name="contenu_page" id="contenu_page" rows="10" cols="50"><?php echo($ligne['page_contenu']); ?></textarea><br />
<input type="submit" name="envoi_maj" id="envoi_maj" value="Mettre à jour" />
</fieldset>
</form>
<?php
}
}
?>
C'est très sommaire, à toi d'ajuster les détails.