Je m'excuse par avance de la longueur de ce post, il y a beaucoup de code à mettre
Donc moi, j'essaye de créer un système d'édition d'articles de blog, et je bloque.
Le script commence donc par une arborescence :
<?php
include('../includes/header.php');
require_once('../includes/connexion.php');
$categorie = 0;
if (!empty($_REQUEST['categorie']))
{
$categorie = $_REQUEST['categorie'];
}
// affichage du parent
$requete = 'SELECT nomCat, idParent FROM categories where idCat = \'' . $categorie . '\';';
$resultat = mysql_query ($requete, $connexion);
if (!empty($resultat))
{
$maCat = mysql_fetch_object ($resultat);
if (!empty($maCat))
{
echo '<p><a href="editerarticle.php?categorie=',$maCat->idParent,'"><<</a> <strong>',$maCat->nomCat,'</strong></p>';
}
}
else
{
echo "Erreur dans l'exécution de la requête.<br/>\n";
echo "Message de MySQL : ", mysql_error($connexion);
}
// affichage des sous-catégories
echo '<ul>';
$requete = 'SELECT nomCat, idCat from categories where idParent = \'' . $categorie . '\';';
$resultat = mysql_query ($requete, $connexion);
if (!empty($resultat)) {
while ($maCat = mysql_fetch_object ($resultat)) {
echo '<li> <a href="editerarticle.php?categorie=',$maCat->idCat,'">',$maCat->nomCat,'</a></li>';
}
}
else {
echo "Erreur dans l'exécution de la requête.<br/>\n";
echo "Message de MySQL : ", mysql_error($connexion);
}
// affichage des produits
$requete = 'SELECT idArticle, idCat, titreArticle, contenuArticle, photoArticle, descPhoto FROM articles where idCat = \'' . $categorie . '\';';
$resultat = mysql_query ($requete, $connexion);
if (!empty($resultat))
{
while ($monArticle = mysql_fetch_object ($resultat))
{
echo '<li> <a href="editer.php?categorie='.$monArticle->idCat.'&article='.$monArticle->idArticle.'"><img src="'.$monArticle->photoArticle.'" alt="'.$monArticle->descPhoto.'"/>
</a><p> '.$monArticle->descPhoto .'</p></li>';
}
}
else
{
echo "Erreur dans l'exécution de la requête.<br/>\n";
echo "Message de MySQL : ", mysql_error($connexion);
}
echo '</ul>';
mysql_close($connexion);
echo '<br/>';
include('../includes/footer.php');
?>
Il s'agit ici de récupèrer l'article en question via une interface "graphique". A ce moment là, j'ai donc besoin de "idArticle" pour obtenir les valeurs des champs de l'article en question.Ensuite, je souhaite traiter l'article via un formulaire. Ici, c'est déjà un peu plus complexe puisqu'en fait, je veux afficher les données déjà existantes dans chaque champ du formulaire afin que l'administrateur puisse corriger (et non tout retaper). Là, je pense que ca commence à coincer
<?php
require_once('connexion.php');
?>
<table border=2>
<form action="../edition/editer.php" method="post" enctype="multipart/form-data">
<br/>
<h5> MODIFIER UN ARTICLE </h5>
<tr>
<td width> Titre de l'article : </td>
<td width><input type="text" name="titreArticle" size="108" value="<?php echo ''.$monArticle->titreArticle.'' ;?>"/></td>
</tr>
<tr>
<td> Contenu de l'article : </td>
<td><textarea name="contenuArticle" rows=15 cols=83 /><?php echo ''.$monArticle->contenuArticle.'' ;?></textarea></td>
</tr>
<tr>
<td> Choisir une catégorie :</td>
<td>
<select name="idCat">
<option> <?php echo ''.$monArticle->idCat.'' ;?></option>
<?php
$requete = 'SELECT * FROM categories WHERE idCat>=5 ORDER BY nomCat ASC' ;
$resultat = mysql_query ($requete, $connexion);
if (!empty($resultat))
{
while ($cat = mysql_fetch_object ($resultat))
{
echo '<option value="'.$cat->idCat.'">'.$cat->nomCat.'</option>';
}
}
else
{
echo "Message de MySQL : ", mysql_error($connexion);
}
?>
</select>
</td>
</tr>
<tr>
<td> Photo : </td>
<td><input type="file" name="photoArticle" id="Changer de photo ?"/></input></td>
<td><img src="<?php echo ''.$monArticle->photoArticle.'' ;?>"></img></td>
</tr>
<tr>
<td> Description : </td>
<td><input type="text" name="descPhoto" value="<?php echo ''.$monArticle->descPhoto.'' ;?>"/></input></td>
</tr>
<tr>
<td><input type="submit" name="submit"/></input></td>
</tr>
</form>
</table>
<br/>
Enfin, le code du fichier .php qui inclue le formulaire et traite les données. Il s'agit ici d'ajouter les nouvelles données dans la base :
<?php
require_once('../includes/connexion.php');
include('../includes/header.php');
if (isset($_POST['submit']))
{
$idCat = $_POST['idCat'];
$titreArticle = $_POST['titreArticle'];
$contenuArticle = $_POST['contenuArticle'];
$photoArticle = $_FILES['photoArticle'];
$descPhoto = $_POST['descPhoto'];
if(!empty($idCat) && !empty($titreArticle) && !empty($contenuArticle) && !empty($photoArticle) && !empty($descPhoto))
{
$req = 'UPDATE articles
SET
idCat = "'. $idCat .'",
titreArticle = "'. $titreArticle .'",
photoArticle = "'. $photoArticle .'",
descPhoto = "'.$descPhoto.'";
contenuArticle = "'. $contenuArticle .'"
WHERE idArticle = "'.$monArticle '";';
$result = mysql_query($req, $connexion) or die(mysql_error());
if ($result)
{
echo '<div class="valide"><p>La modification a été correctement effectué.</p></div>' ;
}
else
{
echo '<div class="echec"><p> La modification a échoué.</p></div>';
}
}
else echo '<div class="echec"><p> Vous n\'avez pas rempli tous les champs. </p></div>';
}
include('../includes/form_editionarticle.php');
include('../includes/footer.php');
?>
Je vous épargne les tables de ma base, je pense que mes noms de champs sont suffisamment explicites Merci d'avance à celui ou celle qui voudra bien m'aider à résoudre ce problème.
Pauline.