Comment supprimer une news PHP?

Résolu/Fermé
Html-Php-Css_Star Messages postés 9 Date d'inscription mardi 9 juillet 2013 Statut Membre Dernière intervention 15 juillet 2013 - 14 juil. 2013 à 21:17
Html-Php-Css_Star Messages postés 9 Date d'inscription mardi 9 juillet 2013 Statut Membre Dernière intervention 15 juillet 2013 - 15 juil. 2013 à 14:17
Bonjour,
Je voudrais savoir comment supprimer une news a partire de mon site je vous passe le code de mes pages:
news.php
    <?php
    // on se connecte à notre base
    $base = mysql_connect ('******, '*******', '*******');  
    mysql_select_db('*******', $base);  
     
    // lancement de la requête. on sélectionne les news que l'on va ordonner suivant l'ordre "inverse" des dates (de la plus récente à la plus vieille : DESC) tout en ne sélectionnant que le nombre voulu de news à afficher (LIMIT)
    $sql = 'SELECT auteur, titre, date, texte_news FROM news ORDER BY date DESC;';  
     
    // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());  
     
    // on compte le nombre de news stockées dans la base de données
    $nb_news = mysql_num_rows($req);  
     
    if ($nb_news == 0) { 
       echo 'Aucune news enregistrée.';  
    }  
    else { 
       // si on a au moins une news, on l'affiche
       while ($data = mysql_fetch_array($req)) { 
     
          // on décompose la date
          sscanf($data['date'], "%4s-%2s-%2s %2s:%2s:%2s", $an, $mois, $jour, $heure, $min, $sec); 
     
          // on affiche les résultats
          echo '<br />News de : ' , htmlentities(trim($data['auteur'])) , '<br />'; 
          echo 'Titre : ' , htmlentities(trim($data['titre'])) , '<br />'; 
          echo 'Postée le : ' , $jour , '/' , $mois , '/' , $an , ' à ' , $heure , ':' , $min , ':' , $sec , '<br /><br />'; 
          echo 'News : ' , nl2br(htmlentities(trim($data['texte_news']))) , '<br />'; 
       }  
    }  
    // on libère l'espace mémoire alloué à cette requête
    mysql_free_result ($req);  
     
    // on ferme la connexion à la base de données
    mysql_close ();  
    ?> 


insert_news.php:
<?php
// on teste si le formulaire a été validé
if (isset($_POST['go']) && $_POST['go']=='Poster la news') { 
   // on se connecte à notre base
   $base = mysql_connect ('*****', '*******', '*****');  
    mysql_select_db('******', $base);  
 
   // on teste la déclaration de nos variables
   if (!isset($_POST['auteur']) || !isset($_POST['titre']) || !isset($_POST['news'])) { 
      $erreur = 'Les variables nécessaires au script ne sont pas définies.'; 
   } 
   else { 
      if (empty($_POST['auteur']) || empty($_POST['titre']) || empty($_POST['news'])) { 
         $erreur = 'Au moins un des champs est vide.'; 
      } 
      // si tout est bon, on peut commencer l'insertion dans la base
      else { 
         // lancement de la requête d'insertion
         $sql = 'INSERT INTO news VALUES("", "'.mysql_escape_string($_POST['auteur']).'", "'.mysql_escape_string($_POST['titre']).'", "'.date("Y-m-d H:i:s").'", "'.mysql_escape_string($_POST['news']).'")'; 
 
         // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
         mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
 
         // on ferme la connexion à la base de données
         mysql_close(); 
 
         // on redirige vers la page d'accueil du site (attention, cette redirection ne fonctionne qui si vous avez placé cette page dans un répertoire à partir de la racine du site). Si ce n'est pas le cas, veuillez entrer ici le bon chemin d'accès afin de retomber sur la page d'accueil du site.
         header('Location: ../index.php'); 
         // on termine le script courant
         exit(); 
      } 
   }  
}  
?>
<html>
<head>
<title>Insertion d'une nouvelle news</title>
</head>
 
<body>
 
<!-- on fait pointer le formulaire vers la page traitant les données -->
<form action="insert_news.php" method="post">
<table>
<tr><td>
<span class="gras">Auteur :</span>
</td><td>
<input type="text" name="auteur" maxlength="30" size="50" value="<?php if (isset($_POST['auteur'])) echo htmlentities(trim($_POST['auteur'])); ?>">
</td></tr><tr><td>
<span class="gras">Titre :</span>
</td><td>
<input type="text" name="titre" maxlength="50" size="50" value="<?php if (isset($_POST['titre'])) echo htmlentities(trim($_POST['titre'])); ?>">
</td></tr><tr><td>
<span class="gras">News :</span>
</td><td>
<textarea name="news" cols="50" rows="10"><?php if (isset($_POST['news'])) echo htmlentities(trim($_POST['news'])); ?></textarea>
</td></tr><tr><td><td align="right">
<input type="submit" name="go" value="Poster la news">
</td></tr></table>
</form>
<?php
// on affiche les erreurs éventuelles
if (isset($erreur)) echo '<br /><br />',$erreur;  
?>
</body>
</html>


Merci d'avance!
A voir également:

2 réponses

en gros : tu affiches tes news dans un sélecteur




très grosso modo, 
$requete = "SELECT id,news FROM news ORDER BY id";
$resultat = mysql_query($requete,$cnx) or die(mysql_error()."\n".$requete);


echo "
 <form method=post action='deletenews.php'>
     <select name = 'deletenewsid'>";
            while ($row = mysql_fetch_assoc($resultat)) {
              <option value='$row[id]'>$row[news]</option>
             }
     echo "</select>
   <input type = 'submit' value = 'Delete cette news' />
 </form>";


et sur la page deletenews.php

quelque chose comme :

if ( isset($_POST['deletenewsid']) ){

$requete = "DELETE FROM news WHERE id=$_POST[deletenewsid];";
$resultat = mysql_query($requete,$cnx) or die(mysql_error()."\n".$requete);


}
0
Html-Php-Css_Star Messages postés 9 Date d'inscription mardi 9 juillet 2013 Statut Membre Dernière intervention 15 juillet 2013
15 juil. 2013 à 14:17
merci beaucoup pour ton aide j'ai reussi.
0