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 :

sauvegarder avant de supprimer un enregistrement [MySQL]


Sujet :

PHP & Base de données

  1. #1
    fey
    fey est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 231
    Par défaut sauvegarder avant de supprimer un enregistrement
    bonsoir,

    je voudrais faire une requete qui sauvegarde ce qu'elle va suprimer dans une autre table, mais je ne sais pas trop comment m'y prendre.

    je pensais faire un select, puis renvoyer celui-ci dans le insert.

    mais je sais pas trop comment faire pour le renvoyer.

    sinon pour le delete j'ai aucun probleme.

    c'est surement un truc tout bete, car j'arrive bien a utilise ces 3 fonctions independament

    est ce que quelqu'un pourrait me donner un petit exemple svp

    merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 147
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $result = mysql_query('SELECT blablabla LIMIT 1');
    $donnees = mysql_fetch_assoc($result);
     
    mysql_query('INSERT INTO table (champ1, champ2, ...) VALUES (' . $donnees['champ1'] . ', ' . $donnees['champ2'] . ', ...)');
     
    mysql_query('DELETE * FROM table WHERE id=' .  $donnees['id']);
    Ce n'est surement pas la solution la plus simple, mais elle doit être fonctionelle. Cherche du côté des requetes mysql si y'a pas une facon plus "légère" de faire ça, avec de la concaténation de requêtes)

    Peut-être trouveras tu quelques chose ici :
    http://dev.mysql.com/doc/refman/5.0/fr/sql-syntax.html
    http://dev.mysql.com/doc/refman/5.0/fr/functions.html

  3. #3
    fey
    fey est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 231
    Par défaut
    merci pour ton aide Bloodscalp, mais j'arrive quand meme a me craquer :p

    je me suis fait ces fonctions :
    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
     
    	//Execution d'une requete
    function execQuery($query) {
    	$result = mysql_query($query) or die('Erreur SQL !<br>'.$query.'<br>'.mysql_error()); ;
    	if (!$result) { header("Location:erreur_sql.html"); }
    	return $result;
    }
    //select general
    function sqlSelect($nomtable,$nomwhere){
    	$this->execQuery("SELECT * FROM $nomtable WHERE $nomwhere");
    }
    //insert un enregistrement
    function inserercodeGen($nomtable,$champsinserer){
    	$this->execQuery("INSERT INTO $nomtable VALUES($champsinserer)");
    }
    //suprime un enregistrement
    function sqlSuprimer($nomtable,$nomwhere){
    	$this->execQuery("DELETE FROM $nomtable WHERE $nomwhere");
    }
    ensuite je fais comme ca mais j'ai du mal avec les '' ""

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $nomtable="article";
    $nomwhere = "code='$modifierArticleNomOri'";
     
    if (isset($suprimerArticle)=="sup"){
        $result= $db->sqlSelect($nomtable,$nomwhere);
    	$donnees = mysql_fetch_assoc($result);
    	$a=$donnees['code'].','.$donnees['categorie'].','.$donnees['nom'].','.$donnees['quantite'];
    	$db->inserercodeGen('poubelle_article',$a);
    	$db->sqlSuprimer($nomtable,$nomwhere);
    }
    apparement je me craque pour ma variable $a, non ??

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 31
    Par défaut
    Essaye ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $a="'".$donnees['code']."','".$donnees['categorie']."','".$donnees['nom']."','".$donnees['quantite']."'";
    Autre remarque : si l'un de tes champs contient un ' ca faire echouer ta requête; assure toi que les éventuels caractères ' soit précéder d'un \

  5. #5
    fey
    fey est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 231
    Par défaut
    il me met cet erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 31
    Par défaut
    tu fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result= $db->sqlSelect($nomtable,$nomwhere);
    Mais ta fonction sqlSelect ne fait aucun return

    essaye avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //select general
    function sqlSelect($nomtable,$nomwhere){
    	return(execQuery("SELECT * FROM $nomtable WHERE $nomwhere"));
    }

  7. #7
    fey
    fey est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 231
    Par défaut
    hum la tout de suite ca marche mieux, je suis un peu vert de ne pas avoir vu mon erreur avant dans ma fonction select

    en tout cas merci a vous deux

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/12/2012, 12h24
  2. HELP!Comment supprimer des enregistrements de tables jointes
    Par ROOTPARIS dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/06/2004, 16h41
  3. Supprim un enregistrement de table2 si le même dans table1
    Par arno24 dans le forum Bases de données
    Réponses: 15
    Dernier message: 27/02/2004, 22h40
  4. [LG]supprimer un enregistrement dans un fichier
    Par Marcus2211 dans le forum Langage
    Réponses: 10
    Dernier message: 17/11/2003, 00h59
  5. [VB6] Supprimer un enregistrement dans une ListView ??
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/11/2002, 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