[SQL]Requete select à l'intérieur d'un Delete

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par 2fou, 26 Avril 2006.

  1. 2fou
    2fou WRInaute discret
    Inscrit:
    8 Juillet 2003
    Messages:
    188
    J'aime reçus:
    0
    Bonjour,

    je souhaiterai faire un script de suppression de catégorie de produits.

    Dans ma base de données, j'ai 3 tables :
    - la table categorie : 1 champ idcat, et un champ intitulecat
    - la table souscat : 1 champs idsouscat, un champ intitulessoucat, et numcat, l'id de la catégorie à laquelle cette sous catégorie est rattaché
    - la table produit : 1 champ idproduit et 1 champ intituleproduit et numsouscat, l'id de la sous-catégorie à laquelle le produit est rattaché.

    Sur ma page, je récupère $cat, l'id de la categorie que je veux supprimer.
    Je voudrais donc maintenant faire une requete pour supprimer la catégorie choisie mais aussi les souscatégories et produits qui y sont rattachées.

    Pour la suppression de la catégorie :
    ça a l'air simple : delete from categorie where idcat = '$cat'

    Pour la sous catégorie :
    idem : delete from souscat where numcat = '$cat'

    Parcontre pour la suppression des produits, c'est plus complexe.
    il me faudrait je pense faire un Delete de :
    SELECT * FROM souscat, produit WHERE numsouscat = idsouscat AND numcat ='$cat'

    Savez vous comment faire?
    Merci de votre aide
     
  2. shrom
    shrom WRInaute impliqué
    Inscrit:
    5 Juillet 2004
    Messages:
    781
    J'aime reçus:
    0
    Si ton SGBD supporte les clés étrangères et les contraintes d'intégrité, il le fera tout seul à condition d'avoir stipuler la clause "ON DELETE CASCADE".

    Sinon tu devras commencer par récupérer les id de tes sous catégories avant de les supprimer pour ensuite supprimer les produits avec ces id, le tout à l'intérieur d'une transaction de préférence.
     
  3. 2fou
    2fou WRInaute discret
    Inscrit:
    8 Juillet 2003
    Messages:
    188
    J'aime reçus:
    0
    Merci.

    n'ayant pas trouvé comment fonctionne les Delete multitables, j'ai donc du faire plus simple.

    // on récupère toutes les souscatégories rattachés à la catégorie selectionné
    $q1="select * FROM souscat WHERE numcat ='$cat'";
    $mr1=mysql_query($q1, $ml) or die("ERROR SQL :".mysql_error());

    // pour chaque sous catégories trouvés
    while ($data1 = mysql_fetch_array($mr1))
    {
    $souscat = $data1['idsouscat'];
    // on supprime les produits rattachés à cette sous-catégories
    $q2="DELETE FROM produit WHERE numsouscat='$souscat'";
    $mr2=mysql_query($q2, $ml) or die("ERROR SQL :".mysql_error());
    }

    // on supprime les sous catégories rattaché à la catégorie
    $q3="DELETE FROM souscat WHERE numcat ='$cat'";
    $mr3=mysql_query($q3, $ml) or die("ERROR SQL :".mysql_error());

    // enfin on supprime la catégorie
    $q4="DELETE FROM categorie WHERE idcat ='$cat'";
    $mr4=mysql_query($q4, $ml) or die("ERROR SQL :".mysql_error());
     
Chargement...
Similar Threads - [SQL]Requete select intérieur Forum Date
Crawler une url présente dans un select Développement d'un site Web ou d'une appli mobile 28 Mars 2022
Onclick Select ne fonctionne pas dans Chrome Développement d'un site Web ou d'une appli mobile 21 Mars 2022
Sélectionner les 5 plus proches produits Développement d'un site Web ou d'une appli mobile 11 Décembre 2021
Google sélectionne une autre URL canonique que celle déclarée Référencement international (langues, pays) 31 Mai 2021
Publicité hyper sélective AdSense 8 Avril 2021
Page en double : l'URL envoyée n'a pas été sélectionnée comme URL canonique Référencement international (langues, pays) 2 Avril 2021
Page en double : l'URL envoyée n'a pas été sélectionnée comme URL canonique Problèmes de référencement spécifiques à vos sites 24 Février 2021
Search Console URL canonique sélectionnée par Google : Sans objet Débuter en référencement 27 Janvier 2021
Search Console Page en double : l'URL envoyée n'a pas été sélectionnée comme URL canonique Problèmes de référencement spécifiques à vos sites 4 Septembre 2020
Search Console Page en double sans URL canonique sélectionnée par l'utilisateur? Crawl et indexation Google, sitemaps 1 Octobre 2019
Search Console Page en double sans URL canonique sélectionnée par l'utilisateur Crawl et indexation Google, sitemaps 5 Août 2019
SELECT COUNT avec PDO et récupérer le résultat Développement d'un site Web ou d'une appli mobile 27 Mai 2019
Comment sélectionnez vous votre thème Wordpress? Développement d'un site Web ou d'une appli mobile 15 Janvier 2019
Choix et sélection des annuaires et backlinks ? Débuter en référencement 30 Décembre 2018
Migration = Problème d'url non sélectionné comme canonique Crawl et indexation Google, sitemaps 14 Novembre 2018
L'URL envoyée n'a pas été sélectionnée comme URL canonique Problèmes de référencement spécifiques à vos sites 19 Septembre 2018
URL envoyée pas été sélectionnée comme URL canonique Problèmes de référencement spécifiques à vos sites 3 Juillet 2018
onClick select fonctionne pas avec Chrome Développement d'un site Web ou d'une appli mobile 7 Mars 2018
Problème pour passer un tableau en paramètre d'une requêtet SELECT. Développement d'un site Web ou d'une appli mobile 24 Mars 2017
Récupérer tous les champs d'un select et les marquer "selected" Développement d'un site Web ou d'une appli mobile 22 Mars 2017