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 :

[SQL] Gestion des données par boutons afin de les valider ou non


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 24
    Points : 16
    Points
    16
    Par défaut [SQL] Gestion des données par boutons afin de les valider ou non
    Bonjour,
    j'ai une partie administration où je veut valider ou pas des ajouts...ce que je veut faire c'est deux boutons un validation et un jeter (par exemple).
    Le truc c'est que le validation doit avoir pour effet de changer de table ce qui est valider, mais je ne sais pas si c'est réalisable en php

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par tozy88 Voir le message
    Bonjour,
    j'ai une partie administration où je veut valider ou pas des ajouts...ce que je veut faire c'est deux boutons un validation et un jeter (par exemple).
    Le truc c'est que le validation doit avoir pour effet de changer de table ce qui est valider, mais je ne sais pas si c'est réalisable en php
    Si, si c'est réalisable ... très facilement avec des booléens

    0 = supprimé
    1 = validé

    Enfin, c'est juste une tite piste

  3. #3
    Membre habitué
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 144
    Points : 151
    Points
    151
    Par défaut
    Bonjour,

    Par expérience, les booléens ne sont pas se qu'il y a de mieux dans une base de données. Cela génère beaucoup de problème en cas de mauvaise manipulation.
    A ta place, je ferais une table intermédiaire (par exemple : ETATAJOUT) dans laquelle il y aurai donc 2 états possible : validé et non-validé (ou plus suivant le cas : la est l'avantage de cette table intermédiaire).
    J'utiliserais alors une clef étrangère (du coté de la table où sont stocké les ajouts) qui servira de référence pour la validation ou non.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Oui c'est ce que je fait, j'ai une table temporaire pour ce qui n'est pas encore validé et une table valider pour ce qui l'est.Mais pour la validation il faudrait que quand j'appuie sur valider ça copie dans la table valider et aussi que ça efface de la table temporaire... mais je vois pas comment faire

  5. #5
    Membre régulier Avatar de bartrik
    Inscrit en
    Novembre 2003
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 104
    Points : 122
    Points
    122
    Par défaut
    en SQL, facile...
    exemple
    1ere requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into valide select * from avalider where numavalider=45;
    2eme requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    delete from avalider where where numavalider=45;
    Maintenant t'arrange ça a ta sauce...

  6. #6
    Membre habitué
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 144
    Points : 151
    Points
    151
    Par défaut
    Oui c'est sur que comme cela c'est possible. Mais c'est pas très logique. Tu utilise deux tables pour différencier des données de même nature. Je m'explique à nouveau. Imagine un système de news. Il y a par exemple deux états possible pour des news : VALIDE ou NON-VALIDE.

    Une gestion plus logique (sa n'engage que moi bien sur) regrouperais toutes les news dans une table NEWS. Dans cette table il y aurais un champs RefEtat qui ferais référence à une autre table : la table ETAT.

    Regarde ce code et dit moi si tu comprend :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    -- Structure de la table `etats`
     
    CREATE TABLE `etats` (
      `IdEtat` int(11) NOT NULL auto_increment,
      `NomEtat` text NOT NULL,
      PRIMARY KEY  (`IdEtat`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
     
    -- Contenu de la table `etats` 
     
    INSERT INTO `etats` (`IdEtat`, `NomEtat`) VALUES 
    (1, 'VALIDE'),
    (2, 'NON-VALIDE');
     
    -- Structure de la table `news`
     
    CREATE TABLE `news` (
      `IdNews` int(11) NOT NULL auto_increment,
      `TitreNews` text NOT NULL,
      `RefEtat` int(11) NOT NULL,
      PRIMARY KEY  (`IdNews`),
      KEY `FK_ASSOCIATION_1` (`RefEtat`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
     
    -- Contenu de la table `news`
     
    INSERT INTO `news` (`IdNews`, `TitreNews`, `RefEtat`) VALUES 
    (1, 'Premiere news : valide', 1),
    (3, 'Troisième news : valide', 1);
     
    -- Contraintes pour la table `news`
     
    ALTER TABLE `news`
      ADD CONSTRAINT `FK_ASSOCIATION_1` FOREIGN KEY (`RefEtat`) REFERENCES `etats` (`IdEtat`) ON DELETE CASCADE ON UPDATE CASCADE;
    Comme par default les news ne sont pas valide le code c'est sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    INSERT INTO NEWS (`TitreNews`, `RefEtat`);
    VALUES ('Nouvelle news', 2)
    // RefEtat = 2 donc d'après la table état la news n'est pas valide
    Ensuite il te suffit d'utiliser RefETat pour faire ce que tu a envie.
    Si tu veux lister les news non-valide il te suffit de faire un SELECT partout ou RefEtat=2. Si tu veux lister les news valide tu fais la même chose mais avec RefEtat=1.
    Puis si tu veux lister toutes les news et connaitre leur état tu utilise une jointure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT IdNews, TitreNews, IdEtat, NomEtat
    FROM NEWS
    INNER JOIN ETATS ON RefEtat=IdEtat
    Est ce que tu vois clair dans ce que je veux t'expliquer??
    Si ce n'est pas le cas renseigne toi sur l'intégrité référentielle ou redemande moi y a aucun souci.

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    ça n'engage que moi aussi mais mettre VALIDE NON-valide directement dans la table news n'empêche pas l'intégrité réferentielle

    tu crées une table inutile à mon sens

  8. #8
    Membre habitué
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 144
    Points : 151
    Points
    151
    Par défaut
    Citation Envoyé par boo64 Voir le message
    tu crées une table inutile à mon sens
    Oui tu a raison, elle peut sembler inutile mais pour moi (et sa n'engage que moi) je trouve que c'est une façon plus propre de coder. L'utilisation des booléens dans une base de données étant à eviter, c'est la seule solution que j'ai trouvé

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 24/03/2010, 15h40
  2. Gestion des données avec MS sql server 2005
    Par rezgui_fawzi dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 25/01/2008, 15h55
  3. [SQL] récupération des données par le php
    Par soumia1988 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 17/09/2007, 14h57
  4. sauvegarde liant des données par appui sur bouton
    Par Flavien44 dans le forum IHM
    Réponses: 2
    Dernier message: 11/06/2007, 18h20
  5. envoyer des données par l'intermédiaire d'un bouton
    Par mathilde50 dans le forum Access
    Réponses: 26
    Dernier message: 28/10/2004, 16h49

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