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 :

Delete from user et site


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 69
    Par défaut Delete from user et site
    Bonjour, je me retrouve devant un problème

    J'incrémente 2 tables 1 pour l'utilisateur et l'autre pour son contenu...
    Quand je suis dans mon admin et que je supprime l'utilisateur avec cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function user_del() {
      global $uid;
     
      $sql = "DELETE FROM user WHERE ur_id = '$uid'";
      $res = db_query($sql);
     
      main_list();
    }
    ça fonctionne bien Mais la table où ce trouve le contenu n'est pas effacé Normale me direz vous
    Comment je peux rajouter à cette fonction la suppression du contenu de l'utilisateur ?
    table user c'est ur_id --- auto_increment des utilisateurs et j'aimerai donc supprimer en même temps dans ma table site le contenu sur la table site qui s'appelle st_id --- auto_increment
    C'est possible de faire ça ?

  2. #2
    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
    Par défaut
    La table du contenu ne contient pas la reference de l'utilisateur ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 69
    Par défaut
    je suis perdu merci pour ton aide
    la table du contenu
    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
     
    CREATE TABLE site (
       st_id int(12) NOT NULL auto_increment,
       st_user_ref int(12) DEFAULT '0' NOT NULL,
       st_cat_ref int(12) DEFAULT '0' NOT NULL,
       st_name varchar(100) NOT NULL,
       st_url varchar(100) NOT NULL,
       st_desc text NOT NULL,
       st_show_me int(32) DEFAULT '0' NOT NULL,
       st_click_me int(32) DEFAULT '0' NOT NULL,
       st_status int(2) DEFAULT '0' NOT NULL,
       st_banner blob NOT NULL,
       st_show_my int(32) DEFAULT '0' NOT NULL,
       st_click_my int(32) DEFAULT '0' NOT NULL,
       PRIMARY KEY (st_id),
       KEY st_user_ref (st_user_ref)
    );
    et la table utilisateur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CREATE TABLE user (
       ur_id int(12) NOT NULL auto_increment,
       ur_name varchar(32) NOT NULL,
       ur_pasw varchar(32) NOT NULL,
       ur_mail text NOT NULL,
       ur_fname varchar(50) NOT NULL,
       ur_lname varchar(50) NOT NULL,
       PRIMARY KEY (ur_id)
    );

  4. #4
    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
    Par défaut
    st_user_ref ca correspond à ur_id ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 69
    Par défaut
    je te donne tous les éléments pour mieux répondre à ta question
    voila tous les st_user_ref qui se trouve dans mes fichiers
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    addsite.php (165):              (st_user_ref, st_cat_ref, st_name, st_url, st_desc, st_status) VALUES
    adm.php (77):    $sql2 = "SELECT st_id FROM site WHERE st_status=1 AND st_user_ref='$row[ur_id]'";
    adm.php (339):  $sql = "SELECT * FROM site WHERE st_user_ref='$uid' ORDER BY st_id"; $res = db_query($sql);
    adm.php (422):    $sql = "SELECT st_id, st_user_ref FROM site WHERE st_id='$bid'";
    adm.php (425):    $sql = "SELECT * FROM user WHERE ur_id='$sit[st_user_ref]'";
    admin\Banner.sql (429):   st_user_ref int(12) DEFAULT '0' NOT NULL,
    admin\Banner.sql (441):   KEY st_user_ref (st_user_ref)
    admin\Banner.sql (441):   KEY st_user_ref (st_user_ref)
    adm_log.php (88):          LEFT JOIN user ON (st_user_ref=ur_id)
    editsite.php (42):  $sql = "SELECT * FROM site WHERE st_user_ref='$user[ur_id]' ORDER BY st_id"; $res = db_query($sql);
    editsite.php (62):  $sql = "SELECT * FROM site WHERE st_id='$bid' AND st_user_ref='$user[ur_id]'";
    editsite.php (161):    $sql .= " WHERE st_id='$bid' AND st_user_ref='$user[ur_id]'";
    editsite.php (200):  $sql = "DELETE FROM site WHERE st_id = '$bid' AND st_user_ref='$user[ur_id]'";

  6. #6
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    au vus de ça

    $sql .= " WHERE st_id='$bid' AND st_user_ref='$user[ur_id]'";
    j'en conclus que oui le ur_id et st_user_ref sont identique.

    dans ce cas, il te suffit d'ajouter une jointure du type inner join site on st_user_ref=ur_id where ur_id=$uid
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  7. #7
    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
    Par défaut
    Faire un DELETE avec un INNER JOIN est un piège car tu ne supprimeras rien si l'element n'est pas présent dans une des deux tables (typiquement dans une relation 1->plusieurs).

    Si tu n'as pas peur, fais quand même une belle sauvegarde et essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql = "DELETE FROM user LEFT JOIN site ON ur_id = st_user_ref AND ur_id = '$uid'";
      $res = db_query($sql);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 69
    Par défaut
    Merci pour votre coup de main
    En faite c'est plus dingue encore je viens de m'apercevoir d'un truc
    je reprend l'exemple de l'appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <!-- Begin Regie CODE -->
    <SCRIPT LANGUAGE="JavaScript" SRC="http://www.monsite.com/regie/banner.php?id=5">
    </SCRIPT>
    <NOSCRIPT>
    <A HREF="http://www.monsite.com/regie/bannerclick.php?id=5" TARGET="_top">
    <IMG SRC="http://www.monsite.com/regie/bannerdisplay.php?id=5" BORDER="0"></A>
    </NOSCRIPT>
    <!-- End Regie CODE --
    id=5 c'est normalement l'affichage de la bannière et ben non ça n'affiche rien
    alors que si je remplace 5 par 4 (4 qui est l'id ---ur_id de l'user ça fonctionne ?? c'est fou non ?
    Je nage complet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    adm_show.php (24):$sql = "SELECT st_id FROM site WHERE st_id = '$id'";
    adm_show.php (29):	$sql2 = "SELECT ba_id, ba_banner FROM banner WHERE ba_id = '$id'";
    banner.php (34):          st_id != '$id' AND
    banner.php (74):echo "  \"$bannerex_url/bannerdisplay.php?id=$id&tid=$tid\",\"$bannerex_url/bannerclick.php?id=$id&tid=$tid\"";
    banner.php (74):echo "  \"$bannerex_url/bannerdisplay.php?id=$id&tid=$tid\",\"$bannerex_url/bannerclick.php?id=$id&tid=$tid\"";
    bannerclick.php (30):    $sql = "INSERT INTO log (lg_time, lg_site_ref, lg_click_me, lg_ipaddr) VALUES (now(), '$id', 1, '$REMOTE_ADDR')";
    bannerclick.php (37):$sql = "UPDATE site SET st_click_me=st_click_me+1 WHERE st_id='$id'";
    bannerdisplay.php (34):              st_id != '$id' AND
    bannerdisplay.php (95):$sql = "SELECT lg_site_ref FROM log WHERE  lg_site_ref='$id' AND lg_ipaddr='$REMOTE_ADDR' AND (TO_DAYS(lg_time)>TO_DAYS(now())-($banner_reloaddays))";
    bannerdisplay.php (102):	$sql = "INSERT INTO log (lg_time, lg_site_ref, lg_show_me, lg_ipaddr) VALUES (now(), '$id', 1, '$REMOTE_ADDR')";
    bannerdisplay.php (109):    $sql = "UPDATE site SET st_show_me=st_show_me+1 WHERE st_id='$id'";

Discussions similaires

  1. Différences entre delete table et delete from table
    Par pegase06 dans le forum Administration
    Réponses: 3
    Dernier message: 16/02/2007, 15h25
  2. Delete * From * Where ?!
    Par gui38 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/12/2006, 10h51
  3. Delete From In Select
    Par licorne dans le forum Requêtes
    Réponses: 4
    Dernier message: 06/10/2006, 13h13
  4. DELETE FROM t where t.id IN (SELECT id FROM t....)
    Par davcha dans le forum Langage SQL
    Réponses: 4
    Dernier message: 05/01/2006, 15h19
  5. delete from
    Par Isildur dans le forum SQL
    Réponses: 46
    Dernier message: 13/05/2004, 10h50

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