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 :

Suppression dans plusieurs tables [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 100
    Points : 54
    Points
    54
    Par défaut Suppression dans plusieurs tables
    Bonjour à tous...
    J'ai un peu de mal avec la syntaxe d'une requête...
    J'essaie de supprimer plusieurs enregistrements dans trois tables différentes. Elles ont chacune en commun un id...

    j'ai déjà essayé plusieurs méthodes mais aucune ne fonctionne...
    Voici la dernière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $deleteSQL = sprintf("DELETE * FROM demande, signaletique, detail WHERE demande.IdDemande=signaletique.IdDemande AND signaletique.IdDemande=detail.IdDemande AND demande.IdDemande=%s",$monID);
    Si quelqu'un avait une petite idée pour moi, ce serait sympa....

  2. #2
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut


    Je comprends pas pourquoi tu fais un sprintf ????
    Il faut que tu utilises mysql_query pour réaliser la requête.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 100
    Points : 54
    Points
    54
    Par défaut
    en fait, j'ai oublié de le virer... j'avais essayé avec plusieurs variable(la meme en vérité écrite trois fois...)
    je ne te suis pas...
    tu penses que je devrais écrire une requete delete par table, et les assembler dans mysql_query ???

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 291
    Points : 217
    Points
    217
    Par défaut
    Bonjour,

    il faut que tu utilises une fonction php pour dire a ton script d'executer la requete dans la base de données...
    Donc d'abord faut se connecter à le base mysql_connect puis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $deleteSQL = mysql_query("DELETE * FROM demande, signaletique, detail WHERE demande.IdDemande=signaletique.IdDemande AND signaletique.IdDemande=detail.IdDemande AND demande.IdDemande='".$monID"');
    Un truc dans le genre quoi (je t'ai rajoute une concatenation aussi, je voi spas trop pourqoi t'avais mis une virgule...)

    @+

  5. #5
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Citation Envoyé par fayred Voir le message
    Bonjour,

    il faut que tu utilises une fonction php pour dire a ton script d'executer la requete dans la base de données...
    Donc d'abord faut se connecter à le base mysql_connect puis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $deleteSQL = mysql_query("DELETE * FROM demande, signaletique, detail WHERE demande.IdDemande=signaletique.IdDemande AND signaletique.IdDemande=detail.IdDemande AND demande.IdDemande='".$monID"');
    +1

    Citation Envoyé par fayred Voir le message
    ... je voi spas trop pourqoi t'avais mis une virgule...)
    C'est la syntaxe de sprintf

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 291
    Points : 217
    Points
    217
    Par défaut
    Ah ok autant pour moi (je l'ai jamais utilisé cette fonction...).
    @+

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 9
    Points : 12
    Points
    12
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $deleteSQL = mysql_query("DELETE * FROM demande, signaletique, detail WHERE demande.IdDemande=signaletique.IdDemande AND signaletique.IdDemande=detail.IdDemande AND demande.IdDemande='".$monID"');
    Voila la syntaxe correcte: il faut rajouter using demande, signaletique, detail
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $deleteSQL = mysql_query("DELETE * FROM demande, signaletique, detail using demande, signaletique, detail  WHERE demande.IdDemande=signaletique.IdDemande AND signaletique.IdDemande=detail.IdDemande AND demande.IdDemande='".$monID"');

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 100
    Points : 54
    Points
    54
    Par défaut
    merci à tous de votre aide précieuse...

    j'ai toujours une erreur de syntaxe...

    Erreur de syntaxe près de '* FROM demande, signaletique, detail WHERE demande.IdDemande=sig' à la ligne 1

    pareil avec la syntaxe USING

    Erreur de syntaxe près de '* FROM demande, signaletique, detail using demande, signaletique' à la ligne 1

    j'y perd mon latin...

  9. #9
    Membre actif Avatar de Mogwaï
    Inscrit en
    Mai 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2004
    Messages : 247
    Points : 278
    Points
    278
    Par défaut
    La syntaxe de delete est

    et non


  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 100
    Points : 54
    Points
    54
    Par défaut
    Nom didj'u!!!!!! c'était ça!
    scrom nieu nieu...

    Un tout grand merci à tout le monde...


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

Discussions similaires

  1. Suppression de ligne dans plusieurs table
    Par chris60 dans le forum Oracle
    Réponses: 6
    Dernier message: 27/04/2006, 17h46
  2. [Debutant]Suppression dans des tables avec contraintes
    Par Roming22 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 26/10/2004, 17h23
  3. Réponses: 7
    Dernier message: 12/10/2004, 16h43
  4. Réponses: 6
    Dernier message: 15/04/2004, 11h04
  5. Combler les trous lors d'une suppression dans une table
    Par Billybongjoe dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 08/04/2004, 14h02

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