Supression/Modification d'une news

Répondre
zOy
le 17/02/2006 à 23:59
zOy
salut à tous j'ai chercher à fair une page pour supprimer des news et une autres pour la modifié mais j'en suis encore loin, aidez moi svp donnez moi des idées, des bou de code qui pourrais m'aidé. Merci !
Blue Star Investment
i M@N
le 18/02/2006 à 01:08
i M@N
Hello !

Quand tu affiches tes news tu crées un lien pour chaque du style
<?php
echo '<a href="./delete_news.php?id='.$id_news.'>effacer</a>';
?>

Ensuite tu fais un fichier pour effacer cette news de la base :
<?php

// fonction nous permettant de faire des redirections
function redirection($url){
if (headers_sent()){
print('<meta http-equiv="refresh" content="0;URL='.$url.'">');
}
else {
header("Location: $url");
}
}

if (isset($_GET['id'])) $id = $_GET['id']; else $id = "";

// on se connecte à notre base
include("./base_connexion.php");

// préparation de la requête.
$sql = 'DELETE FROM news WHERE id = '.$id.'';

/*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 !'.$sql.''.mysql_error());

redirection('./news.php');
exit;

?>

Pour mettre la news à jour faut d'abord avoir un lien pour ça :
<?php
echo '<a href="./update_news.php?id='.$id_news.'>mettre à jour</a>';
?>

puis la faire s'afficher dans un textarea dont le name sera texte_news par exemple et un input caché avec l'id, c'est le fichier update_news.php :
<?php

if (isset($_GET['id_news'])) $id_news = $_GET['id_news']; else $id_news = "";

// on se connecte à notre base
include("./base_connexion.php");

// lancement de la requête.
$sql = 'SELECT id,texte_news FROM news WHERE id ='.$id_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) */
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());

// on va scanner tous les tuples un par un
while ($data = mysql_fetch_array($req)) {

// on récupère les valeurs qui nous intéressent
$id_news = $data['id'];
$texte_news = stripslashes($data['texte_news']);

// on insère des retours à la ligne HTML à chaque retour chariot
$texte_news = nl2br ($texte_news);

// on affiche les résultats
echo'<center><form action="./news_update_traitement.php" method="post">';
echo'<textarea name="texte_news" maxlength="100" rows="10" cols="50">'.$texte_news.'</textarea>';
echo'<input type="hidden" name="id_news" value="'.$id_news.'">';
echo'<input type="submit" value="METTRE A JOUR"></form></center>';
}

// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($req);

?>

puis faire un fichier news_update_traitement.php sur le même principe que delete mais avec UPDATE :
<?php

// fonction nous permettant de faire des redirections
function redirection($url){
if (headers_sent()){
print('<meta http-equiv="refresh" content="0;URL='.$url.'">');
}
else {
header("Location: $url");
}
}

if (isset($_POST['id_news'])) $id_news = $_POST['id_news']; else $id_news = "";
if (isset($_POST['texte_news'])) $texte_news = addslashes($_POST['texte_news']); else $texte_news = "";

// on se connecte à notre base
include("./base_connexion.php");

// lancement de la requête d'update
$sql = 'UPDATE news SET texte_news= "'.$texte_news.'" WHERE id= "'.$id_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();

redirection('./news.php');
exit;

?>

En gros c'est ça le principe. smiley

@+...
One Love, One Heart, One Unity.
zOy
le 18/02/2006 à 02:25
zOy
merçi simpas d'avoir repondu à une heure pareille et aussi rapidement. Je vais traiter ta réponse et te tenir au courant :)
Blue Star Investment
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours