IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[Conception] Suppression dans une base


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Points : 74
    Points
    74
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="index.php?page=confirm_suppr&id=<?php echo $id; ?>">Oui</a>

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    $_GET ne contient pas 'confirm_suppr', mais 'page'

  3. #3
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

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

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    ça ne serait pas plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query('DELETE * FROM membres WHERE id=' . $_GET['id']);

  4. #4
    Membre averti Avatar de TucSale
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 264
    Points : 325
    Points
    325
    Par défaut
    bonjour,

    Essais peut etre ca, car je pense que tu te trompe dans le test de tes variables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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);
    ...
    Tuc l'Original, On ne peut que l'aimer

  5. #5
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Salut, pour un DELETE, il me semble que la syntaxe serait plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Points : 74
    Points
    74
    Par défaut
    J'ai modifié cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query('DELETE * FROM membres WHERE id=' . $_GET['confirm_suppr']);
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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...

  7. #7
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    TucSale et Mr N. parleraient-ils aux murs ?

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Points : 74
    Points
    74
    Par défaut
    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...

  9. #9
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Fais voir ton code corrigé.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Points : 74
    Points
    74
    Par défaut
    Voici le code de la page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    [ <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...

  11. #11
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    bonjour,

    euh.... y aurait pas une erreur la:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query('DELETE FROM membres WHERE id=' . $_GET['confirm_suppr&id=']);
    ce ne serait pas plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  12. #12
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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...

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Points : 74
    Points
    74
    Par défaut
    erreur de ma part mais de suite corrigé...

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Points : 74
    Points
    74
    Par défaut
    si mes notions de bases sont absentes, vous pouvez m'expliquez pourquoi comme cela ça fonctionne alors???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="confirm_suppr.php?supprimer=<?php echo $id; ?>">Supprimer</a>

  15. #15
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    ca fonctionne car tu teste si tu as bien ta variable $_GET['supprimer']
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  16. #16
    Membre averti Avatar de johweb
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 342
    Points : 367
    Points
    367
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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... ^^

  17. #17
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Toujours pas... ^^
    Enfin tout dépend de l'url qui appelle ce script...

  18. #18
    Membre averti Avatar de johweb
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 342
    Points : 367
    Points
    367
    Par défaut
    Je n'ai pas détaillé, mais j'ai modifié ces deux lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_GET['confirm_suppr&id']))
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query('DELETE FROM membres WHERE id=' . $_GET['confirm_suppr&id']);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_GET['confirm_suppr']) && isset($_GET['id']))
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query('DELETE FROM membres WHERE id=' . $_GET['id']);
    et c'est "appelable" par la page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <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... ^^

  19. #19
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    On est d'accord alors 8)

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Points : 74
    Points
    74
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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...

Discussions similaires

  1. Suppression dans une base
    Par agosmel dans le forum HyperFileSQL
    Réponses: 0
    Dernier message: 07/04/2010, 12h38
  2. [10g] Suppression dans une base
    Par ApprentiOracle dans le forum Administration
    Réponses: 15
    Dernier message: 18/12/2008, 15h47
  3. [Conception] images dans une base de données
    Par ph_anrys dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 22/06/2006, 15h05
  4. [Conception] Code php dans une base de donnée
    Par krfa1 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 13/09/2005, 10h58
  5. [Conception] Gestion des accents dans une base de données
    Par MiJack dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 07/07/2005, 11h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo