Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/02/2011, 19h22   #1
Nouveau Membre du Club
 
Inscription : juillet 2010
Messages : 196
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 196
Points : 25
Points : 25
Par défaut Pb news avec commentaire et suppression de celle-ci.

Bonjour,
j'ai un site de news avec un systeme de commentaires.
Le problème que j'ai (et qui est logique) c'est que lors que j'essaie de supprimer une news qui comportent des commentaires j'ai le droit à un message comme quoi il y a des commentaires en liens avec cette news.

Comment faire pour ne plus avoir ce message c'est à dire

--> Avoir un message lorsque je tente de supprimer la news qui me prévient que la news comporte des commentaires associés et qui me demande si je suis sur de vouloir la supprimer.
--> Ensuite si je fais ok je supprime automatiquement les news et les commentaires associés sinon je fais rien.


Page avec laffichage de news et le bouton de suppression :

Code :
1
2
3
4
5
6
7
8
9
10
11
while($data=mysql_fetch_assoc($req))
{
    $id=$data["id"];
    $filename=$dossier.$data['image'];
	echo " <a href=\"supprnews.php?id={$data["id"]} \">x</a>";
    echo '<img src="'.$filename.'" alt="" />';
    echo "<p> {$data["titre"]} -- ";
	echo "<p>".Tronquer_Texte($data["contenu"],  150)."<br><a href='detail_news_admin.php?id={$data["id"]}'>Suite de  l'article</a></p>";
    echo "<p align=\"right\">".date("j/n/Y G:i",strtotime($data["date"]))."</p>";
    echo" Commentaire(s) ({$data["nb_comments"]})";
	echo " <a href=\"edit.php?id={$data["id"]}\">edit</a><br><br><br><br>";


Qui mène à cette page avec la suppression

Code :
1
2
3
$sql = "DELETE FROM news WHERE id={$_GET["id"]}";
	$req = mysql_query($sql) or die(mysql_error());
	header("location: gestionnews.php");
Merci d'avance !
polux31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 20h10   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Tu peux utiliser l'option "ON DELETE CASCADE" sur la clef étrangère de la table commentaire.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 21h04   #3
Nouveau Membre du Club
 
Inscription : juillet 2010
Messages : 196
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 196
Points : 25
Points : 25
C'est bon ça fonctionne merci.
Maintenant comment pourrais je m'y prendre pour afficher un message pour prevenir qu'on va supprimer une news avec des commentaires ?

Merci d'avance
polux31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 14h48   #4
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
Une idée avec un petit peu de javascript :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
function checkDel()
{
    reponse = confirm("Etes vous sûr de vouloir supprimer cette news ?");
 
    if(reponse)
    {
        return true;
    }
    else
    {
	return false;
    }
}
Et dans ta balise de suppression :

Code :
onclick='return checkDel()'
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 16h46   #5
Nouveau Membre du Club
 
Inscription : juillet 2010
Messages : 196
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 196
Points : 25
Points : 25
Es tu sur que cela fonctionne ?
Je n'aurais pas le choix de continuer ou non si ?
polux31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 16h57   #6
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
Oui cela fonctionne, je l'utilise et si tu aura le choix car cela va t'afficher 2 boutons, oui ou non.
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 17h02   #7
Nouveau Membre du Club
 
Inscription : juillet 2010
Messages : 196
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 196
Points : 25
Points : 25
Ok je vais essayé de mettre en place ça.
Je vous tiens au courant.

Merci
polux31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 17h55   #8
Nouveau Membre du Club
 
Inscription : juillet 2010
Messages : 196
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 196
Points : 25
Points : 25
Peux-tu mexpliquer à quel endroit je met ce que tu me proposes ?
le
onclick='return checkDel()'

Notamment car je n'ai pas de formulaire ?

Merci d'avance
polux31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 18h06   #9
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 561
Points : 1 561
Citation:
Envoyé par polux31 Voir le message
Peux-tu mexpliquer à quel endroit je met ce que tu me proposes ?
le
onclick='return checkDel()'

Notamment car je n'ai pas de formulaire ?

Merci d'avance
Dans la balise du bouton sur lequel tu clique

Code :
<input style = "button" value = "Supprimer" onclick='return checkDel()' />
ou dans un lien
Code :
<a href=\"supprnews.php?id={$data["id"]} \" onclick='return checkDel()'>x</a>
EDIT faire attention cependant avec cette technique car la demande de confirmation est dépendante de javascript. Si javascript désactivé la suppression se fera sans préalable.
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 19h07   #10
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 561
Points : 1 561
Citation:
Envoyé par ABCIWEB Voir le message
EDIT faire attention cependant avec cette technique car la demande de confirmation est dépendante de javascript. Si javascript désactivé la suppression se fera sans préalable.
Pour poursuivre sur cette remarque on pourrait faire en sorte d'avoir javascript obligatoirement activé pour pouvoir supprimer la news (et donc on passerait obligatoirement par le message de confirmation sans quoi aucune action ne pourrait être entreprise).

Pour ce faire il suffirait de supprimer le href et de reporter son contenu en paramètre dans la fonction javascript qui pourra utiliser window.location pour rediriger à la page de suppression.

Donc en reprenant l'exemple de gwharl :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
function checkDel(url)
{
    reponse = confirm("Etes vous sûr de vouloir supprimer cette news ?");
 
    if(reponse)
    {
        window.location = url;
    }
    else
    {
    return false;
    }
}
et
Code :
<?php echo '<a style="cursor:pointer;text-decoration:underline" onclick= "return checkDel(\'supprnews.php?id='.$data['id'].'\')">x</a>';?>
Sinon pour faire une confirmation qui fonctionnera sans javascript activé, il faudrait passer par une confirmation php ce qui est plus lourd à coder.
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 20h05   #11
Nouveau Membre du Club
 
Inscription : juillet 2010
Messages : 196
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 196
Points : 25
Points : 25
Es tu sur que ta proposition fonctionne ?
Notamment la fonction (c'est normal qu'il n'y ait pas de $ ?
Pour le lien de suppression cela ne fonctionne pas. Le clic ne fonctionne pas.
polux31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 20h27   #12
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 561
Points : 1 561
Mais si ça fonctionne. Tu dois avoir une erreur ailleurs dans ton code. Faut séparer les fonctionnalités pour débugguer.

Testes ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
$data['id'] = 'toto';
 
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
 
<script type="text/javascript">
<!--
function checkDel(url)
{
    var reponse = confirm("Etes vous sûr de vouloir supprimer cette news ?");
 
    if(reponse)
    {
        window.location = url;
    }
    else
    {
    return false;
    }
}
-->
</script>
</head>
 
<body>
 
<div>
 <?php echo '<a style="cursor:pointer;text-decoration:underline" onclick= "checkDel(\'supprnews.php?id='.$data['id'].'\')">x</a>';?>
</div>
 
 
</body>
</html>
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 20h35   #13
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 561
Points : 1 561
Citation:
Envoyé par polux31 Voir le message
Notamment la fonction (c'est normal qu'il n'y ait pas de $ ?
Oui c'est normal car c'est du javascript et pas du php

EDIT : Et d'ailleurs j'ai édité le message ci-dessus car il vaut mieux déclarer la variable javascript "reponse" avec var.
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 21h41   #14
Nouveau Membre du Club
 
Inscription : juillet 2010
Messages : 196
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 196
Points : 25
Points : 25
Parfait !
Merci beaucoup !
polux31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h04.


 
 
 
 
Partenaires

Hébergement Web