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

Langage PHP Discussion :

Suppression d'un enregistrement


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut Suppression d'un enregistrement
    Bonjour tout le monde,

    J'ai un tableau qui est créé avec entre autre en première colonne des check boxes.

    Ces cas à cocher portent ce nom :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <input type="checkbox" name="new[0]" >
    <input type="checkbox" name="new[1]" >
    <input type="checkbox" name="new[2]" >
    ...
    Je me demandais si je pouvais utiliser ce nombre (0, 1, 2...) pour référencer une ligne de la base de données à supprimer ?

    Donc par exemple je dis :

    DELETE FROM ligne WHERE numéro='1'

    Est-ce possible cela ?

    Est-ce que chaque enregistrement de ma base de données contienne un numéro qui commencerait à zéro ?

    Auriez-vous une idée ?

    Merci d'avance.

    beegees

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour Beegees,

    Non, pour récupérer la valeur d'un élément de formulaire c'est l'attribut value qu'il faut valoriser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="checkbox" name="new[]" value="1" />
    <input type="checkbox" name="new[]"value="2" />
    <input type="checkbox" name="new[]" value="3" />
    Ensuite en PHP tu les récupères comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    foreach($_POST['new'] as $id){
       mysql_query('DELETE FROM table WHERE id='.$id);//Supprime la case cochée
    }
    ?>

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut partir de l'autre bout :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql = "SELECT id FROM table";
    ....
    echo '<input type="checkbox" name="checkbox[]" value="' . $row['id'] .'" />';
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($_POST['checkbox'] as $id) {
    $sql = "DELETE FROM table WHERE id = " . $id;
    }
    ou plus economique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "DELETE FROM table WHERE id IN (" . implode(",",$_POST['checkbox']) .")";
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par ThomasR Voir le message
    Bonjour Beegees,

    Non, pour récupérer la valeur d'un élément de formulaire c'est l'attribut value qu'il faut valoriser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="checkbox" name="new[]" value="1" />
    <input type="checkbox" name="new[]"value="2" />
    <input type="checkbox" name="new[]" value="3" />
    Ensuite en PHP tu les récupères comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    foreach($_POST['new'] as $id){
       mysql_query('DELETE FROM table WHERE id='.$id);//Supprime la case cochée
    }
    ?>
    Bonjour Thomas,

    Merci pour ta réponse.

    OK, je travaillerai donc avec la valeur du cb.

    Par contre, le commentaire
    //Supprime la case cochée
    m'inquiête :

    C'est bien l'enregistrement de la base de donnée que l'on supprime pas le check box ?

    Merci encore à toi et bon Dimanche.

    beegees

    Citation Envoyé par sabotage Voir le message
    Il faut partir de l'autre bout :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql = "SELECT id FROM table";
    ....
    echo '<input type="checkbox" name="checkbox[]" value="' . $row['id'] .'" />';
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($_POST['checkbox'] as $id) {
    $sql = "DELETE FROM table WHERE id = " . $id;
    }
    ou plus economique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "DELETE FROM table WHERE id IN (" . implode(",",$_POST['checkbox']) .")";
    Re Sabotage,

    Merci pour ta réponse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT id FROM table";
    Est-ce que le id existe dans la bd par défaut ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "DELETE FROM table WHERE id IN (" . implode(",",$_POST['checkbox']) .")";
    [/QUOTE]

    Où dois-je mettre ce code ?

    Vraiment désolé sabotage, je suis un peu perdu.

    Merci encore.

    beegees

  5. #5
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Beegees,

    Bien sûr mysql_query() execute une requête SQL, c'est donc bien l'enregistrement de ta table dans ta base de données qui est supprimé.


    Concernant le second code de sabotage qui utilise le implode, tu le mets à l'endroit où tu veux que ta requête de suppression s'execute (donc je suppose sur la meme page lorsque le formulaire est posté et tes conditions vérifiées etc..).

  6. #6
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Comme tu n'as pas donné la structure de ta table sabotage a pris l'exemple d'une table nommé table dont la clé primaire serait une colonne nomée id. C'est à toi d'adapter ce code en fonction de ta table.
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

Discussions similaires

  1. Suppression d'un enregistrement
    Par charliejo dans le forum Bases de données
    Réponses: 7
    Dernier message: 16/03/2006, 11h13
  2. [VB][rdo] Strategie de suppression massive d'enregistrements
    Par Bicky dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 12/10/2005, 14h12
  3. suppression automatique des enregistrements
    Par abdou.sahraoui dans le forum Langage SQL
    Réponses: 4
    Dernier message: 02/08/2005, 13h45
  4. [VB.NET]Suppression d'un enregistrement dans un DataGrid
    Par San Soussy dans le forum ASP.NET
    Réponses: 4
    Dernier message: 16/06/2005, 10h30
  5. Suppression d'un enregistrement
    Par denisfavre dans le forum IHM
    Réponses: 3
    Dernier message: 04/10/2004, 11h03

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