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 :

Plusieurs requêtes successives [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 50
    Points : 30
    Points
    30
    Par défaut Plusieurs requêtes successives
    Bonjour,
    Je souhaite supprimer dans une première table une entrée puis dans une seconde table plusieurs entrées liées à la première table.
    J'ai mis deux requêtes l'une à la suite de l'autre, la première s'effectue, la seconde n'est pas prise en compte, ce qui m'oblige à supprimer les adresses lièes au code de la première table directement dans la table.
    Pouvez-vous m'aider ?
    merci beaucoup d'avance

    Voici mon code de suppression :
    Code php : 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
     
    include('connect.php');
     
     
    if(!empty($_GET['page'])) {
     
    	$id = $_GET['page'];
     
     
    	$sql = "DELETE FROM emailing WHERE id=$id";
    	mysql_query($sql);
     
    	//$code_emailing=mysql_insert_id();
     
    	$sql2 = "DELETE FROM tbl_emails WHERE code_emailing = $id";
    	mysql_query($sql2);
     
    	$success = 'Emailing supprimé !';
     
    }

  2. #2
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Vatican

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2004
    Messages : 144
    Points : 238
    Points
    238
    Par défaut
    bjr,
    il faut mettre des quotes dans ces cas :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE code_emailing = '$id'

    pense à migrer vers mysqli étant donn que mysql sera obsolète.
    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
     
     
    include('connect.php');
     
     
    if(!empty($_GET['page'])) {
     
    	$id = $_GET['page'];
     
     
    	$sql = "DELETE FROM emailing WHERE id=$id";
    	mysql_query($sql);
     
    	//$code_emailing=mysql_insert_id();
     
    	$sql2 = "DELETE FROM tbl_emails WHERE code_emailing = '$id'";
    	mysql_query($sql2);
     
    	$success = 'Emailing supprimé !';
     
    }
    .
    . . Savoir, savoir faire, faire , faire savoir...

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 50
    Points : 30
    Points
    30
    Par défaut
    Bonjour et merci pour ta réponse

    Je viens de tester avec ta solution mais j'ai toujours mes adresses qui ne sont pas supprimées.

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    350
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 350
    Points : 507
    Points
    507
    Par défaut
    affiches ta requetes avec un echo, var_dump, methode de log ou ce que tu veux.
    Tu verras si elle est correct et tu pourras la tester manuellement.
    Marcuscircus : La seule différence entre un rêve et sa réalisation, c'est l'envie

  5. #5
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Vatican

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2004
    Messages : 144
    Points : 238
    Points
    238
    Par défaut
    RE,

    est-ce qu'il s'agit du même id qu'on doit utiliser pour supprimer?

    ton id tu l'obtient par le GET.

    Exemple : id=2
    alors
    1- tu supprime dans la table emailing toutes les lignes dont le id=2

    2- puis dans la table tbl_emails tu supprimes toutes les lignes dont le code_emailing=2

    essaie d'afficher l'erreur pour voir si la requête est bien écrite.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    include('connect.php');
    if(!empty($_GET['page'])) {
    	$id = $_GET['page'];
    	$sql = "DELETE FROM emailing WHERE id=$id";
    	mysql_query($sql);
    	//$code_emailing=mysql_insert_id();
    	$sql2 = "DELETE FROM tbl_emails WHERE code_emailing = '$id'";
    	mysql_query($sql2) OR die(mysql_error());
    	$success = 'Emailing supprimé !';
    }
    .
    . . Savoir, savoir faire, faire , faire savoir...

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 50
    Points : 30
    Points
    30
    Par défaut
    En fait, le seul champ en commun dans les deux tables est code_emailing, je n'ai pas repris l'id de la table emailing dans la table tbl_emails. Je pensais pouvoir lier les deux par le code_emailing mais le problème vient peut-être de là.

    Pour l'affichage de l'erreur, je ne suis pas en local tout de suite. Je teste dès que possible pour rapporter l'erreur.
    Merci

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    350
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 350
    Points : 507
    Points
    507
    Par défaut
    Si code_emailing de tbl_emails ne fait pas reference a id de emailing,

    Essayes ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sql = "DELETE E, T 
            FROM emailing AS E
            INNER JOIN tbl_emails AS T
            ON E.code_emailing = T.code_emailing
            WHERE E.id=$id";
    	mysql_query($sql);
    Marcuscircus : La seule différence entre un rêve et sa réalisation, c'est l'envie

  8. #8
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 50
    Points : 30
    Points
    30
    Par défaut
    Merci beaucoup, ça marche très bien par contre est-ce que tu peux m'expliquer la requête si tu as cinq minutes. Je vais mieux regarder les jointures, c'est assez complexe mais très utile, je ne serais pas arriver à solutionner mon problème.
    Merci encore

  9. #9
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    350
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 350
    Points : 507
    Points
    507
    Par défaut
    Tu récupères tout les lignes de emailing qui ont l'id choisi ainsi que tout les lignes de tble_emails qui sont liées (meme code_emailing) et tu les supprimes.
    Marcuscircus : La seule différence entre un rêve et sa réalisation, c'est l'envie

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

Discussions similaires

  1. [MySQL] Incrémenter un where dans plusieurs requêtes successives
    Par Catalyst dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 03/12/2012, 17h05
  2. Réponses: 4
    Dernier message: 04/07/2005, 09h36
  3. [JDBC] Faire plusieurs requète
    Par picomz dans le forum JDBC
    Réponses: 9
    Dernier message: 25/05/2005, 14h33
  4. [Optimisation] Que privilégier : une ou plusieurs requêtes ?
    Par Dimitri01 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 25/01/2004, 11h29
  5. [Technique] Conflits entre plusieurs requêtes
    Par Neowile dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 24/03/2003, 09h37

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