Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 04/04/2006, 12h11   #1
Membre du Club
 
Inscription : mai 2004
Messages : 181
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 181
Points : 41
Points : 41
Par défaut [Conception] Suppression dans une base

Bonjour,

J'ai un léger problème de suppression dans une base. Cela ne supprime rien du tout...

Quelqu'un aurait une idée car là je nage un peu...

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
 
 
<?php
session_start();
require("protect/conf.php");
 
if (!isset($_SESSION['pseudo']))
{
	echo("<script language=\"javascript\">location=\"index.php?page=acces_interdit\";</script>");
}
 
$sql = connect_sql();
$pseudo = $_SESSION['pseudo'];
$reponse = mysql_query ("SELECT * FROM membres WHERE pseudo='$pseudo'"); 
$donnees = mysql_fetch_array ($reponse);
 
if (isset($_GET['confirm_suppr']))
{
	$sql = connect_sql();
    mysql_query('DELETE * FROM membres WHERE id=' . $_GET['confirm_suppr']);
	mysql_close($sql);
 
if($sql) 
    {
	print "<script>window.location='./index.php?page=suppr_succes';</script>";
	}
  else
  {
    print "<script>window.location='./index.php?page=erreur';</script>";
  }}
?>
Voici le lien qui me permet de supprimer :

Code :
<a href="index.php?page=confirm_suppr&id=<?php echo $id; ?>">Oui</a>
djinko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2006, 12h15   #2
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
$_GET ne contient pas 'confirm_suppr', mais 'page'
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2006, 12h15   #3
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
ça ne serait pas plutôt :
Code :
mysql_query('DELETE * FROM membres WHERE id=' . $_GET['id']);
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2006, 12h18   #4
Membre éclairé
 
Avatar de TucSale
 
Inscription : novembre 2005
Messages : 265
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : novembre 2005
Messages : 265
Points : 301
Points : 301
Envoyer un message via MSN à TucSale
bonjour,

Essais peut etre ca, car je pense que tu te trompe dans le test de tes variables
Code :
1
2
3
4
5
6
7
 
if (isset($_GET['page']) && $_GET['page'] == 'confirm_suppr') {
 
   $sql = connect_sql();
    mysql_query('DELETE * FROM membres WHERE id=' . $_GET['id']);
   mysql_close($sql);
...
TucSale est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2006, 12h55   #5
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 569
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 569
Points : 2 501
Points : 2 501
Salut, pour un DELETE, il me semble que la syntaxe serait plutôt
Code :
mysql_query('DELETE FROM membres WHERE id='.$_GET['id']);
sans *

Bon développement

PS : n'oublie de faire les vérifications qui vont bien pour pouvoir utiliser $_GET['id']
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2006, 14h40   #6
Membre du Club
 
Inscription : mai 2004
Messages : 181
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 181
Points : 41
Points : 41
J'ai modifié cela :

Code :
mysql_query('DELETE * FROM membres WHERE id=' . $_GET['confirm_suppr']);
par :

Code :
mysql_query('DELETE FROM membres WHERE id='.$_GET['id']);
Et par les autres propositions mais cela ne change rien...

Je ne comprends pas, je precise bien que si l'on clique sur le lien, on supprime les champs de la base mais rien y fait...
djinko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2006, 14h45   #7
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
TucSale et Mr N. parleraient-ils aux murs ?
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2006, 14h49   #8
Membre du Club
 
Inscription : mai 2004
Messages : 181
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 181
Points : 41
Points : 41
Non du tout mais j'ai bien précisé que les autres propositions ne fonctionnent pas non-plus.

Pour info, vous avez oublié "ska_root" dans votre liste...
djinko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2006, 14h54   #9
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Fais voir ton code corrigé.
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2006, 15h28   #10
Membre du Club
 
Inscription : mai 2004
Messages : 181
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 181
Points : 41
Points : 41
Voici le code de la page :

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
 
<?php
session_start();
require("protect/conf.php");
 
if (!isset($_SESSION['pseudo']))
{
	echo("<script language=\"javascript\">location=\"index.php?page=acces_interdit\";</script>");
}
 
$sql = connect_sql();
$pseudo = $_SESSION['pseudo'];
$reponse = mysql_query ("SELECT * FROM membres WHERE pseudo='$pseudo'"); 
while ($var = mysql_fetch_array ($reponse))	 
{
$id = $var['id'];
 
if (isset($_GET['confirm_suppr&id']))
{
$sql = connect_sql();
    mysql_query('DELETE FROM membres WHERE id=' . $_GET['confirm_suppr&id']);
mysql_close($sql);
 
if($sql) 
    {
	print "<script>window.location='./index.php?page=suppr_succes';</script>";
	}
  else
  {
    print "<script>window.location='./index.php?page=erreur';</script>";
  }}
?>
Le lien :

Code :
[ <a href="index.php?page=confirm_suppr&id=<?php echo $id; ?>">Oui</a> ]
Pour info, lorsque je clique sur le lien la page s'actualise comme si le lien n'était pas actif...
djinko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2006, 15h32   #11
Expert Confirmé
 
Avatar de yiannis
 
Inscription : septembre 2005
Messages : 1 499
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : septembre 2005
Messages : 1 499
Points : 2 563
Points : 2 563
bonjour,

euh.... y aurait pas une erreur la:
Code :
mysql_query('DELETE FROM membres WHERE id=' . $_GET['confirm_suppr&id=']);
ce ne serait pas plutot:
Code :
mysql_query('DELETE FROM membres WHERE id=' . $_GET['id=']);
__________________
"Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN
yiannis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2006, 15h32   #12
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Code :
if (isset($_GET['confirm_suppr&id=']))
C'est quoi ça ? J'ai comme l'impression qu'il manque des notions de bases là

Relis mieux la proposition de TucSale...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2006, 15h37   #13
Membre du Club
 
Inscription : mai 2004
Messages : 181
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 181
Points : 41
Points : 41
erreur de ma part mais de suite corrigé...
djinko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2006, 15h44   #14
Membre du Club
 
Inscription : mai 2004
Messages : 181
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 181
Points : 41
Points : 41
si mes notions de bases sont absentes, vous pouvez m'expliquez pourquoi comme cela ça fonctionne alors???
Code :
1
2
3
4
5
6
7
8
 
 
if (isset($_GET['supprimer']))
{
	$sql = connect_sql();
    mysql_query('DELETE FROM membres WHERE id=' . $_GET['supprimer']);
	mysql_close($sql);
}
Avec ce lien :

Code :
<a href="confirm_suppr.php?supprimer=<?php echo $id; ?>">Supprimer</a>
djinko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2006, 15h51   #15
Expert Confirmé
 
Avatar de yiannis
 
Inscription : septembre 2005
Messages : 1 499
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : septembre 2005
Messages : 1 499
Points : 2 563
Points : 2 563
ca fonctionne car tu teste si tu as bien ta variable $_GET['supprimer']
Code :
if (isset($_GET['supprimer']))
puis pour ta requette de suppression tu prends la valeur de ta variable $_GET['supprimer'].
__________________
"Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN
yiannis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2006, 15h55   #16
Membre éclairé
 
Avatar de johweb
 
Inscription : décembre 2003
Messages : 332
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : décembre 2003
Messages : 332
Points : 316
Points : 316
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
<?php 
session_start(); 
require("protect/conf.php"); 
 
if (!isset($_SESSION['pseudo'])) 
{ 
   echo("<script language=\"javascript\">location=\"index.php?page=acces_interdit\";</script>"); 
} 
 
$sql = connect_sql(); 
$pseudo = $_SESSION['pseudo']; 
$reponse = mysql_query ("SELECT * FROM membres WHERE pseudo='$pseudo'"); 
while ($var = mysql_fetch_array ($reponse))    
{ 
$id = $var['id']; 
 
if (isset($_GET['confirm_suppr']) && isset($_GET['id'])) 
{ 
$sql = connect_sql(); 
    mysql_query('DELETE FROM membres WHERE id=' . $_GET['id']); 
mysql_close($sql); 
 
if($sql) 
    { 
   print "<script>window.location='./index.php?page=suppr_succes';</script>"; 
   } 
  else 
  { 
    print "<script>window.location='./index.php?page=erreur';</script>"; 
  }} 
?>
devrait fonctionner... ^^
johweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2006, 15h57   #17
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Toujours pas... ^^
Enfin tout dépend de l'url qui appelle ce script...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2006, 16h02   #18
Membre éclairé
 
Avatar de johweb
 
Inscription : décembre 2003
Messages : 332
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : décembre 2003
Messages : 332
Points : 316
Points : 316
Je n'ai pas détaillé, mais j'ai modifié ces deux lignes :
Code :
if (isset($_GET['confirm_suppr&id']))
et
Code :
mysql_query('DELETE FROM membres WHERE id=' . $_GET['confirm_suppr&id']);
par
Code :
if (isset($_GET['confirm_suppr']) && isset($_GET['id']))
et
Code :
mysql_query('DELETE FROM membres WHERE id=' . $_GET['id']);
et c'est "appelable" par la page :

Code :
<a href="index.php?confirm_suppr=oui&id=<?php echo $id; ?>">Oui</a>
Sinon, si cela ne marche toujours pas, merci de préciser les erreurs renvoyées... ^^
johweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2006, 16h04   #19
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
On est d'accord alors 8)
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2006, 16h10   #20
Membre du Club
 
Inscription : mai 2004
Messages : 181
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 181
Points : 41
Points : 41
Ca j'avais bien capté mais de cette maniere, cela ne m'arrange pas...

C'est pour cela que je demande si quelqu'un aurait une idée si je procede d'une autre maniere...

en ayant modifié de cette maniere...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if (isset($_GET['page']))
{
$sql = connect_sql();
mysql_query('DELETE FROM membres WHERE membres.id=' . $_GET['id']);
mysql_close($sql);
}
if($sql) 
    {
	print "<script>window.location='./index.php?page=suppr_succes';</script>";
	}
  else
  {
    print "<script>window.location='./index.php?page=erreur';</script>";
  }
?>
Il me précise bien que le compte a été supprimé avec succes mais rien ne se passe dans la bdd...
djinko est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h01.


 
 
 
 
Partenaires

Hébergement Web