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

Requêtes MySQL Discussion :

supprimer les données de de table différentes


Sujet :

Requêtes MySQL

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Par défaut supprimer les données de de table différentes
    Bonsoir tout le monde

    Je souhaiterai votre avis sur le code ci-dessous.Car il ne fonctionne pas.

    Je souhaiterai pouvoir selectionner les données de 2 table differentes avec les cases à cocher et suppimer avec un bouton.

    Voici le code ci-dessous.

    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
    33
    34
    35
    36
    37
    38
     
     
    <?
     
    $liendb = mysql_connect("sql.free.fr","toto","mp");
     
     
    mysql_select_db('v_debailleul');
     
    $reponse = mysql_query("SELECT civilite,nom,objet,date,heure,ID FROM tbl_messagerie");
     
    $nb_message=mysql_num_rows($reponse);
     
    ?>
     
    <?
    }
    $cases_cochees = $_POST['effacer'];
     
     
    if(isset($_POST['effacer'])) 
    {
     
      foreach($_POST['effacer']as $supp) 
     {
     
    $sql="DELETE FROM tbl_messagerie WHERE ID = ".$supp."";
     
    $sql2="DELETE FROM tbl_message_recu WHERE ID = ".$supp."";
     
     
    mysql_query($sql);
    mysql_query($sql2);
    }
    }
    mysql_close();
     
    ?>
    Pouvez m'aider svp?

    Merci

    Cordialement

    A bientôt

  2. #2
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par défaut
    Est-ce que, si tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($_POST['effacer'] as $supp) {
      echo $supp. " " ;
    }
    ça t'affiche bien les identifiants des messages à supprimer?

    PS: on est en 2006, pas en 2004... (regarde ta signature)
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Par défaut
    Bonjour tout le monde

    Non, ca n'affiche rien pcaboche

    D'où vient le probleme.

    Merci

    Cordialement

    A bientôt

  4. #4
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par défaut
    Citation Envoyé par argon
    Bonjour tout le monde

    Non, ca n'affiche rien pcaboche

    D'où vient le probleme.
    Dans ce cas, c'est plus un problème PHP.

    Une petite recherche sur les didacticiels de DVP et j'ai trouvé cet article :
    http://julp.developpez.com/php/formulaires/

    Notamment ça :
    Par contre pour un ensemble de case à cocher, nous allons utiliser un tableau pour stocker les différentes valeurs, par exemple :

    <form method="POST">
    <input type="checkbox" name="option[]">Option 1
    <input type="checkbox" name="option[]">Option 2
    <input type="checkbox" name="option[]">Option 3
    </form>


    Vous reconnaîtrez sans mal qu'il s'agit d'un tableau grâce aux crochets ! La variable (qui sera un tableau) sera donc $option. Pour l'instant, c'est d'une simplicité enfantine, car tout est donné dans l'attribut name de la balise.
    Ton problème vient peut-être de là (oubli des crochets).

    ***

    Maintenant, la partie MySQL:

    Dans ton script tu fais 2 requêtes DELETE par enregistrement. Ce n'est pas bien parce que ça encombre le réseau (communications entre Apache et MySQL)

    Ce qu'il vaut mieux faire, c'est des requêtes pour supprimer l'ensemble des enregistrements d'un coup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DELETE FROM tbl_messagerie WHERE ID IN (7, 12, 13, 15, 18, ...) ;
    Pour créer l'ensemble des valeurs utilisées dans le "IN", tu fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ...
    $listeDesIdASupprimer .= "IN (". implode(", ",  $idASupprimer) .")" ;
    Bien sûr, tu auras pris la peine de vérifier que $idASupprimer est de longueur supérieure à 0 avant de lancer ta requête.

    ***
    Pour la suppression de TRES grandes quantités de données, cette technique a ses limites et il faut en utiliser une autre. Cependant, pour ton problème, je pense que ça ira.
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Par défaut
    Bonjour tout le monde

    Voici la requet suprimée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    { 
     
    $sql="DELETE FROM tbl_messagerie WHERE ID = ".$supp.""; 
     
    $sql2="DELETE FROM tbl_message_recu WHERE ID = ".$supp.""; 
     
     
    mysql_query($sql); 
    mysql_query($sql2); 
    } 
    } 
    mysql_close();
    Car, je n'es pas compris ce que tu me propose.

    Cordialement

    A bientôt

  6. #6
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par défaut
    C'est simple pourtant: plutôt que de supprimer les éléments 7, 12, 13, 15, 18, ... un par un, tu les supprimes tous en même temps. De cette façon, tu fais mon de requêtes et donc ça va plus vite.

    Mais avant, il faut réussir à afficher les id de tous les enregistrements à supprimer.
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. supprimer les données d'1 table avec Adoquery
    Par nn2009 dans le forum Bases de données
    Réponses: 3
    Dernier message: 25/10/2011, 14h52
  2. Comment récupérer les données de deux tables différentes en jsp
    Par burnit4mosta dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 10/06/2011, 16h15
  3. Impossible de supprimer les données avec Truncate table
    Par bilou972 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 28/03/2009, 10h41
  4. Réponses: 14
    Dernier message: 29/11/2007, 07h47
  5. exporter les données entre deux tables différentes ?
    Par tizilfin dans le forum Oracle
    Réponses: 3
    Dernier message: 12/03/2007, 15h39

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