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

Langage PHP Discussion :

Objet PHP et Nombre attribut variable


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2014
    Messages : 18
    Par défaut Objet PHP et Nombre attribut variable
    Bonjour,

    Je butte sur un problème en php orienté objet, je vous explique:

    Mon objet => fiche, a comme attribue :


    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
    function fiche($Obj_FI='', $Des_FI='', $Duree_FI='', $Local_FI='', $Cont_FI='', $Situa_FI='', $Act_FI='', $Res_Q1_FI='', $Res_Q2_FI='', $Valid_FI='', $Lieu_FI='', $Saisie_FI='', $ID_COMP='', $ID_PRO='', $ID_PROC='',$Lib_PROC='',$Co_PROC='',$ID_DO ='',$Lib_DO='',$Co_DO ='',$ID_ACT='',$Lib_ACT='',$Co_ACT='',$ID_COMP='',$Lib_COMP='',$Co_COMP='',$ID_PRO='',$Lib_PRO='',$Des_PRO='')
        {
            $this->Obj_FI = $Obj_FI;
            $this->Des_FI = $Des_FI;
            $this->Duree_FI = $Duree_FI;
            $this->Local_FI = $Local_FI;
            $this->Cont_FI = $Cont_FI;
            $this->Situa_FI = $Situa_FI;
            $this->Act_FI = $Act_FI;
            $this->Res_Q1_FI = $Res_Q1_FI;
            $this->Res_Q2_FI = $Res_Q2_FI;
            $this->Valid_FI = $Valid_FI;
            $this->Lieu_FI = $Lieu_FI;
            $this->Saisie_FI = $Saisie_FI;
            $this->ID_PROC = $ID_PROC;
            $this->Lib_PROC = $Lib_PROC;
            $this->Co_PROC = $Co_PROC;
            $this->ID_DO = $ID_DO;
            $this->Lib_DO = $Lib_DO;
            $this->Co_DO = $Co_DO;
            $this->ID_ACT = $ID_ACT;
            $this->Lib_ACT = $Lib_ACT;
            $this->Co_ACT = $Co_ACT;
            $this->ID_COMP = $ID_COMP;
            $this->Lib_COMP = $Lib_COMP;
            $this->Co_COMP = $Co_COMP;
            $this->ID_PRO = $ID_PRO;
            $this->Lib_PRO = $Lib_PRO;
            $this->Des_PRO = $Des_PRO;
    }
    Mais une fiche peut avoir un ou plusieurs supports (5 max) (composé d'un ID, d'un libéllé, d'une nature et d'un origine).

    de ce fait, Dois-je créer les 5 supports directement dans l'objet fiche ? (Donc 20 attributs en plus)

    Comme ceci :

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    function fiche($Obj_FI='', $Des_FI='', $Duree_FI='', $Local_FI='', $Cont_FI='', $Situa_FI='', $Act_FI='', $Res_Q1_FI='', $Res_Q2_FI='', $Valid_FI='', $Lieu_FI='', $Saisie_FI='', $ID_COMP='', $ID_PRO='', $ID_PROC='',$Lib_PROC='',$Co_PROC='',$ID_DO ='',$Lib_DO='',$Co_DO ='',$ID_ACT='',$Lib_ACT='',$Co_ACT='',$ID_COMP='',$Lib_COMP='',$Co_COMP='',$ID_PRO='',$Lib_PRO='',$Des_PRO='')
    {
        $this->Obj_FI = $Obj_FI;
        $this->Des_FI = $Des_FI;
        $this->Duree_FI = $Duree_FI;
        $this->Local_FI = $Local_FI;
        $this->Cont_FI = $Cont_FI;
        $this->Situa_FI = $Situa_FI;
        $this->Act_FI = $Act_FI;
        $this->Res_Q1_FI = $Res_Q1_FI;
        $this->Res_Q2_FI = $Res_Q2_FI;
        $this->Valid_FI = $Valid_FI;
        $this->Lieu_FI = $Lieu_FI;
        $this->Saisie_FI = $Saisie_FI;
        $this->ID_PROC = $ID_PROC;
        $this->Lib_PROC = $Lib_PROC;
        $this->Co_PROC = $Co_PROC;
        $this->ID_DO = $ID_DO;
        $this->Lib_DO = $Lib_DO;
        $this->Co_DO = $Co_DO;
        $this->ID_ACT = $ID_ACT;
        $this->Lib_ACT = $Lib_ACT;
        $this->Co_ACT = $Co_ACT;
        $this->ID_COMP = $ID_COMP;
        $this->Lib_COMP = $Lib_COMP;
        $this->Co_COMP = $Co_COMP;
        $this->ID_PRO = $ID_PRO;
        $this->Lib_PRO = $Lib_PRO;
        $this->Des_PRO = $Des_PRO;
        $this->ID_SUPP_0 = $ID_SUPP_0;
        $this->Nom_SUPP_0= $Nom_SUPP_0;
        $this->Org_SUPP_0= $Org_SUPP_0;
        $this->Nat_SUPP_0= $Nat_SUPP_0;
        $this->ID_SUPP_1 = $ID_SUPP_1;
        $this->Nom_SUPP_1= $Nom_SUPP_1;
        $this->Org_SUPP_1= $Org_SUPP_1;
        $this->Nat_SUPP_1= $Nat_SUPP_1;
        $this->ID_SUPP_2 = $ID_SUPP_2;
        $this->Nom_SUPP_2= $Nom_SUPP_2;
        $this->Org_SUPP_2= $Org_SUPP_2;
        $this->Nat_SUPP_2= $Nat_SUPP_2;
        $this->ID_SUPP_3 = $ID_SUPP_3;
        $this->Nom_SUPP_3= $Nom_SUPP_3;
        $this->Org_SUPP_3= $Org_SUPP_3;
        $this->Nat_SUPP_3= $Nat_SUPP_3;
        $this->ID_SUPP_4 = $ID_SUPP_4;
        $this->Nom_SUPP_4= $Nom_SUPP_4;
        $this->Org_SUPP_4= $Org_SUPP_4;
        $this->Nat_SUPP_4= $Nat_SUPP_4;
    }
    Ou faire une requête sql et compter le nombre de support pour la fiche en question ?

    Il faut savoir aussi que cette objet me permet de modifier ma fiche donc de pouvoir enregistrer 1 à 5 support.

    Je sais pas trop comment ou quoi faire.

    Merci d'avance de votre aide.

    (N'hésiter pas a me demandé des partie de code.)

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    A la vue de ton code, cela serait bien si tu pouvais poster le code complet de ta classe Fiche

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2014
    Messages : 18
    Par défaut
    Voila
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Houlà, c'est space...

    Allez rapidement :
    • Toutes les propriétés de ta classe sont public : quelle que soit l"instance on peut tout modifier sans aucun contrôle ^^
    • Qu'un constructeur porte le nom de la classe dans laquelle il est défini peut s'avérer très problématique : regarde ici
    • Avoir toutes les propriétés public et se taper un prototype de constructeur avec la liste des 30 variables, c'est inutile
    • Quand tu as autant de variables, tu y gagne à utiliser un tableau en guise de paramètre
    • Tout étant public, on peut même s'amuser à changer les types de données en base : $pog_attribute_type
    • Généralement, on n'a pas à "dé-échapper" les données de la base à la lecture...
    • T'es sûr d'avoir besoin d'utiliser utf8_encode() ? Si t'es homogène sur toute la ligne, tu n'as pas à te préoccuper des encodages
    • Tu devrais nommer plus explicitement tes variables, parce que quand tu y reviendras dans 10 mois, tu te maudiras

    J'arrête là,

    Euh, c'est étrange :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $thisObjectName = get_class($this);
    $fiche = new $thisObjectName();
    Tu peux remplacer par : Donc pour répondre à ta question, je te dirais qu'il faut passer par un tableau de gestion des supports.
    Mais bon, faudrait d'abord reprendre entièrement ce code.

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2014
    Messages : 18
    Par défaut
    La base de se code vient de POG (Php object generator) où j'ai modifier quelque petite chose.

    je relis un cours de php objet et je modifie tous ça,

    pour le (utf8_encode), s'il y en a pas, les 4 libellés sont Null.

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2014
    Messages : 18
    Par défaut
    Je suis arrivé à ça :

    class.fiche.php

    Cela me retourne le même résultat qu'avant mais avec 2 fois moins de ligne , Mais si je les met en 'private' cela ne marche plus !
    et je ne vois pas pourquoi

Discussions similaires

  1. nombre des attributs variable
    Par fmed1900 dans le forum Langage
    Réponses: 4
    Dernier message: 04/05/2012, 11h06
  2. [PHP-JS] Problème de variable PHP dans un script JS
    Par soad029 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/08/2005, 22h17
  3. [PHP-JS] passage de variable php a javascript
    Par limpins dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/07/2005, 11h54
  4. [MFC] Portée d'attributs/variables ?
    Par BaBeuH dans le forum MFC
    Réponses: 4
    Dernier message: 14/06/2005, 10h31
  5. [PHP-JS] Envoi de variable sans passer par un submit
    Par adilou1981 dans le forum Langage
    Réponses: 4
    Dernier message: 15/11/2004, 19h21

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