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

MkFramework Discussion :

Calcule avec requete sql


Sujet :

MkFramework

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2018
    Messages : 16
    Points : 7
    Points
    7
    Par défaut Calcule avec requete sql
    Bonjour,

    Voila je souhaite faire un calcul avec une requete sql, qui récupère une donnée dans une table et une donnée dans une autre (faire la requête c'est facile) mais je sais pas ou placer le code de la requête afin qu'une variable ou champs retranscrit le résultat. Comment faire ?

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    C'est tres simple, vous choisissez une des classe model et vous y ajouter une méthode du type

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public function getMonCalcul(){
     
     $oRow=$this->findOne('SELECT ... mon clacul as monchampTotal FROm ma table1, jointure ....');
     
    return $oRow->monchampTotal;
     
    }
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2018
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par imikado Voir le message
    C'est tres simple, vous choisissez une des classe model et vous y ajouter une méthode du type

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public function getMonCalcul(){
     
     $oRow=$this->findOne('SELECT ... mon clacul as monchampTotal FROm ma table1, jointure ....');
     
    return $oRow->monchampTotal;
     
    }
    Pourquoi j'ai cette erreur : count(): Parameter must be an array or an object that implements Countable et j'ai cette erreur la aussi quand j'essaye de modifier :

    ]Trying to get property 'cout_theorique' of non-object
    #0 C:\xampp\htdocs\HyperInterim\model\model_mission.php(29): exception_error_handler(8, 'Trying to get p...', 'C:\\xampp\\htdocs...', 29, Array)
    #1 C:\xampp\htdocs\HyperInterim\module\mission\main.php(124): model_maison->getMonCalcul(NULL)
    #2 C:\xampp\htdocs\lib\framework\class_root.php(264): module_maison->_edit()
    #3 C:\xampp\htdocs\HyperInterim\public\index.php(47): _root->run()
    #4 {main}

    Detail:
    #0 C:\xampp\htdocs\hypermaison\model\model_maison.php (29)
    exception_error_handler( , 'Trying to get property 'cout_theorique' of non-object' , 'C:\xampp\htdocs\HyperInterim\model\model_maison.php' , , Array ( [idMaison] => [oMaison] => ) )
    #1 C:\xampp\htdocs\HyperInterim\module\maison\main.php (124)
    model_mission -> getMonCalcul( NULL )
    #2 C:\xampp\htdocs\lib\framework\class_root.php (264)
    module_mission -> _edit( )
    #3 C:\xampp\htdocs\HyperInterim\public\index.php (47)
    _root -> run( )
    #4 {main}
    Fichier : C:\xampp\htdocs\HyperMaison\model\model_maison.php ligne 29

    Message : Trying to get property 'cout_theorique' of non-object

    11 public static function getInstance(){
    12 return self::_getInstance(__CLASS__);
    13 }
    14
    15 public function findById($uId){
    16 return $this->findOne('SELECT DISTINCT * FROM '.$this->sTable.' WHERE idmaison=?',$uId );
    17 }
    18 public function findAll(){
    19 return $this->findMany('SELECT DISTINCT * FROM '.$this->sTable);
    20 }
    21 public function findValidation($uId){
    22 return $this->findMany('SELECT * FROM '.$this->sTable.' WHERE idmaison=?',$uId);
    23 }
    24 public function findOrderBY(){
    25 return $this->findMany('SELECT * FROM '.$this->sTable.' ORDER BY etat ASC');
    26 }
    27 public function getMonCalcul($idAgence){
    28 $oMission=$this->findOne('SELECT heurejourtotal * coutmoyheurint AS cout_theorique FROM maison,agence WHERE idAgence=?',$idAgence);
    29 return $oMission->cout_theorique;
    30 }
    Que faire ? Que dois-je mettre dans mon model et que dois-je mettre dans le main de mon module et dans quel view cela dois etre retranscrit ?

    Voici mes codes (model_maison)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public function getMonCalcul($idAgence){
    		$oMaison=$this->findOne('SELECT heurejourtotal * coutmoyheurint AS cout_theorique FROM maison,agence WHERE idAgence=?',$idAgence);
    		return $oMaison->cout_theorique;
    	}
    (main.php):
    public function _edit(){
    $tMessage=$this->processSaveEdit();

    $oMaison=model_maison::getInstance()->findById( _root::getParam('id') );
    $oMaison=model_maison::getInstance()->getMonCalcul(_root::getParam('idAgence'));

    $oView=new _view('mission::edit');
    $oView->oMaison=$oMaison;
    $oView->tId=model_maison::getInstance()->getIdTab();
    $oView->tJoinmodel_agence=model_agence::getInstance()->getSelect();
    $oView->tJoinmodel_rayon=model_rayon::getInstance()->getSelect();
    $oView->tJoinmodel_accroimotif=model_accroimotif::getInstance()->getSelect();
    $oView->tJoinmodel_absence=model_absence::getInstance()->getSelect();

    $oPluginXsrf=new plugin_xsrf();
    $oView->token=$oPluginXsrf->getToken();
    $oView->tMessage=$tMessage;

    $this->oLayout->add('main',$oView);
    }

  4. #4
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Il faudrait passer de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public function getMonCalcul($idAgence){
    	$oMission=$this->findOne('SELECT heurejourtotal * coutmoyheurint AS cout_theorique FROM maison,agence WHERE idAgence=?',$idAgence);
    	return $oMission->cout_theorique;
    }
    a

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public function getMonCalcul($idAgence){
    	$oMission=$this->findOne('SELECT (heurejourtotal * coutmoyheurint) as cout_theorique FROM maison,agence WHERE idAgence=?',$idAgence);
    	if($oMission){
    	return $oMission->cout_theorique;
    	}
    	else{
    	 die('No row found for requete getMonCalcul for Agence '.$idAgence );
    	}
    }
    car ici: si il n'y a pas de ligne maison avec cette agence il n'y aura pas de ligne retourné, donc pas d'objet oMission
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2018
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par imikado Voir le message
    Il faudrait passer de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public function getMonCalcul($idAgence){
    	$oMission=$this->findOne('SELECT heurejourtotal * coutmoyheurint AS cout_theorique FROM maison,agence WHERE idAgence=?',$idAgence);
    	return $oMission->cout_theorique;
    }
    a

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public function getMonCalcul($idAgence){
    	$oMission=$this->findOne('SELECT (heurejourtotal * coutmoyheurint) as cout_theorique FROM maison,agence WHERE idAgence=?',$idAgence);
    	if($oMission){
    	return $oMission->cout_theorique;
    	}
    	else{
    	 die('No row found for requete getMonCalcul for Agence '.$idAgence );
    	}
    }
    car ici: si il n'y a pas de ligne maison avec cette agence il n'y aura pas de ligne retourné, donc pas d'objet oMission
    D'accord mais après dans mon main je dois mettre quoi ? car j'essaie d'appeler la requête et il y a une erreur No row found for requête getMonCalcul for Agence.

    Je pense que j'ai du mal faire ma requête car je veux récupérer la coût horaire d'une agence qui se trouve dans la table agence par rapport a l'ID de l'agence car les agence n'ont pas toute les même coût horaire et récupérer l'heure total dans la table maison afin de faire une multiplication. Est ce que ma requête est bonne ?

  6. #6
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    A priori ce n'est pas normal de ne pas trouver d'enregistrement

    vous pourriez lever une exception coté model, et la catcher coté main pour dans ce cas afficher un message propre à l'ecran indiquant un soucis de parametrage "soucis de parametrage/données sur l'agence XXX, veuillez contacter le responsable du site..."
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2018
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par imikado Voir le message
    A priori ce n'est pas normal de ne pas trouver d'enregistrement

    vous pourriez lever une exception coté model, et la catcher coté main pour dans ce cas afficher un message propre à l'ecran indiquant un soucis de parametrage "soucis de parametrage/données sur l'agence XXX, veuillez contacter le responsable du site..."
    Comment faire alors ? la je suis complètement perdu et je voudrais savoir comment récupérer des champs deja entrer au clavier

  8. #8
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Pour le message d'erreur ?

    vous pouvez passer par une variable communiqué à la vue, par exemple

    dans votre model:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public function findMyStatByAgence($agenceId){
     
    	$oRow=$this->findOne('ma requete sql as monChamp',$agenceId);
    	if($oRow){
    		//agence trouve, on retourne la statistique
    		return $oRow->monChamp;
    	}else{
    		//pas d'agence, pas de stats, on genere une exception
    		thrown new Exception('Aucune agence pour l ID:'.$agenceId);
    	}
     
    }

    coté main.php dans votre méthode action (de la page)
    Code php : 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
     
    public function _mapage(){
     
     
    	$messageErreur=null;
    	$iStat=null;
     
    	try{
    		$iStat=model_matable::getInstance()->findMyStatByAgence( _root::getParam('idDeMonAgence') );
    	}catch(Exception $e){
    		$messageErreur=$e->getMessage();
    	}
     
    	$oView=new _view('monModule::cheminMaVue');
    	//passage de la variable message
    	$oView->messageErreur=$messageErreur;
    	$oView->iStat=$iStat;
     
    	$this->oLayout->add('main',$oView);
    }

    Et dans la vue correspondante:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    <div class="maVue">
     
    <?php if($this->messageErreur):?>
    	<div class="erreur"><?php echo $this->messageErreur?></div>
    <?php endif;?>
     
    <!--le reste de votre vue-->
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  9. #9
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Pour les champs "deja rentré au clavier", vous voulez dire quoi exactement ? dans un formulaire ?

    Vous parlez dans le cas ou on saisi un formulaire et on reste sur celui-ci a cause d'erreur ? ou qu'on remette une entrée deja saisi par le passé ?
    dans le deuxieme cas, on ne le code pas, c'est le navigateur qui gère un historique de saisi
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2018
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par imikado Voir le message
    Pour les champs "deja rentré au clavier", vous voulez dire quoi exactement ? dans un formulaire ?

    Vous parlez dans le cas ou on saisi un formulaire et on reste sur celui-ci a cause d'erreur ? ou qu'on remette une entrée deja saisi par le passé ?
    dans le deuxieme cas, on ne le code pas, c'est le navigateur qui gère un historique de saisi
    Remette une entrée déjà saisi par le passé, comment faire ?

  11. #11
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Je vous ai répondu: on ne peut pas gerer les entrée saisie par le passé dans un champ, on appelle cela l'auto complétion et c'est le navigateur qui gère ça à sa facon

    ou sinon il faut gerer une table particulière pour chaque champ

    quel est votre besoin exactement ?
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2018
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par imikado Voir le message
    Je vous ai répondu: on ne peut pas gerer les entrée saisie par le passé dans un champ, on appelle cela l'auto complétion et c'est le navigateur qui gère ça à sa facon

    ou sinon il faut gerer une table particulière pour chaque champ

    quel est votre besoin exactement ?
    Mon besoin est que : J'ai créer des pages comme "show" qui détail ce que j'ai entrer dans mon formulaire mais dans ses pages, il y a un bouton de validation qui permet d'envoyer un email et le problème est que : je n'arrive pas a récupérer les données déjà entrer dans les pages semblable a "show"(qui détail ce que j'ai entrer dans mon formulaire et qui on un bouton de validation) afin de les retranscrire dans mon email.

  13. #13
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Et ces données sont enregistrés en base de données ?

    Si oui, vous voulez un champ texte ou un menu déroulant ?

    Pour arriver à saisir votre besoin il faudrait être plus précis: vous avez quels tables au final, qu'enregistrez vous et que voulez vous pré remplir dans votre champ de formulaire ?

    Je vous donne un exemple: des villes

    Imaginons un formulaire de saisie de ville, a chaque bouton valider on enregistrerai cette ville dans notre table "ville" en base de donnée

    Ensuite, dans une autre table on ferait référence à cette table de villes via un menu déroulant rempli de cette liste de ville

    Pouvez-vous expliquuez ainsi votre besoin ?
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2018
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par imikado Voir le message
    Et ces données sont enregistrés en base de données ?

    Si oui, vous voulez un champ texte ou un menu déroulant ?

    Pour arriver à saisir votre besoin il faudrait être plus précis: vous avez quels tables au final, qu'enregistrez vous et que voulez vous pré remplir dans votre champ de formulaire ?

    Je vous donne un exemple: des villes

    Imaginons un formulaire de saisie de ville, a chaque bouton valider on enregistrerai cette ville dans notre table "ville" en base de donnée

    Ensuite, dans une autre table on ferait référence à cette table de villes via un menu déroulant rempli de cette liste de ville

    Pouvez-vous expliquuez ainsi votre besoin ?
    En faite, j'ai un formulaire que je remplis, et a chaque fois que j'appuie sur valider sa enregistre les données dans la table 'maison' et envoie un email avec les données, ensuite sa me redirige sur la page "list.php" qui liste toutes les donnéee remplies dans le formulaire dans un tableau. Dans ce tableau, il y a différents bouton comme "Détails"(qui détails tous ce que j'ai entré dans mon formulaire grâce a l'ID), "Supprimer", Approbation Direction. Dans ma page "approbation direction", je liste les différentes données comme pour la page "Détails" mais sauf que dans ma page approbation il y a un bouton de validation et quand j'appuie sur le bonton de validation, sa envoie un email mais quand j'envoie l'email, je n'arrive pas a récupérer les champs déjà enregistré dans la base de données afin de les faire apparaître dans l'email.

    Mon besoin est : Comment récupérer les champs déjà enregistrer dans la base de données ?

  15. #15
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Je comprends mieux le besoin

    pour cela, il faut
    1. créer une méthode dans la classe modele pour recuperer les infos necessaire
    2. dans le fichier main, dans la methode où on envoit l'email faire appel à cette classe modele pour recuperer les enregistrements

    votre classe model où sont les données
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
     public function getMesDonnesByInfo( $monChampDiscriminant){
       return $this->findOne(' SELECT mes champs from ma table wherer monCHampDisciminant=?',$monChamp);
     }

    et dans votre main.php au moment d'envoyer le mail
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    $oMoObjet=model_maclassemodel::getInstance()->getMesDonnesByInfo( $maValeurDiscriminante) ;
     
    $sBody='mon texte du mail plus '.$oMonObjet->monChamp;
     
     
     
    //mon code qui envoi le mail
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  16. #16
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2018
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par imikado Voir le message
    Je comprends mieux le besoin

    pour cela, il faut
    1. créer une méthode dans la classe modele pour recuperer les infos necessaire
    2. dans le fichier main, dans la methode où on envoit l'email faire appel à cette classe modele pour recuperer les enregistrements

    votre classe model où sont les données
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
     public function getMesDonnesByInfo( $monChampDiscriminant){
       return $this->findOne(' SELECT mes champs from ma table wherer monCHampDisciminant=?',$monChamp);
     }

    et dans votre main.php au moment d'envoyer le mail
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    $oMoObjet=model_maclassemodel::getInstance()->getMesDonnesByInfo( $maValeurDiscriminante) ;
     
    $sBody='mon texte du mail plus '.$oMonObjet->monChamp;
     
     
     
    //mon code qui envoi le mail
    D'accord merci, je vais essayer pour voir si sa fonctionne mais je voudrais savoir (je revient sur le poste du debut) comment faire un calcul dans une requete et retourner le resultat dans une variable ? Peut tu faire un exemple, dans le modele(le code sql) et dans le main qui se trouve dans le module et dans la view si il y a du code a mettre

  17. #17
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Oui par exemple:

    disons une table ou on va compter les eleves

    Dans le model model_maclasse.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public function getNombreEleves(){
     
    	$oRow=$this->findOne('SELECT count(*) as total FROM maClasse');
    	if($oRow){
    		return $oRow->total;
    	}
     
    	return null;
    }

    mon fichier monModule/main.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public function _maPage(){
     
    	$iNbEleves=model_maclasse::getInstance()->getNombreEleves();
     
    	$oView=new _view('monModule::maVue');
    	$oView->iNbEleves=$iNbEleves;
     
    	$this->oLayout->add('main',$oView);
     
    }

    ma vue module/monModule/view/maVue.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <p>Il y a <?php echo $this->iNbEleves?> eleve(s) </p>
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  18. #18
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2018
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Comment récupérer les données d'une autre table afin de les retranscrire dans une page ?

    Exemple : Quand je me connecter je rentre un login et un mot de passe. Ensuite j'ai une page avec un formulaire, je souhaite que le login de la personne connecté qui se trouve dans la table "user" sois affiché dans un input pour qu'ensuite quand j'appuie sur le bouton validée, que je puisse sauvegarder le login dans ma base de donnée dans la table "mission".

    Pour résumer l'exemple, je veux que sa enregistre le login qui a remplis le formulaire dans la base de donnée afin de le retranscrire dans une colonne de mon tableau de ma page list.php.

  19. #19
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Si vous souhaitez recupérer votre utilisateur connecté, utilisez
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    _root::getAuth()->getAccount()

    ceci recupere l'objet utilisateur choisi lors de l'installation de l'authentification

    faites un plugin_debug pour verifier son contenu

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    plugin_debug::addSpy('oAccount',_root::getAuth()->getAccount() );

    Ainsi vous pouvez ajouter au moment de l'enregistrement le nom de l'utilisateur (selon le nom du champ) par exemple "login"

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $oMaTable->loginQuiAfaitlAction=_root::getAuth()->getAccount()->login;
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  20. #20
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2018
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par imikado Voir le message
    Si vous souhaitez recupérer votre utilisateur connecté, utilisez
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    _root::getAuth()->getAccount()

    ceci recupere l'objet utilisateur choisi lors de l'installation de l'authentification

    faites un plugin_debug pour verifier son contenu

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    plugin_debug::addSpy('oAccount',_root::getAuth()->getAccount() );

    Ainsi vous pouvez ajouter au moment de l'enregistrement le nom de l'utilisateur (selon le nom du champ) par exemple "login"

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $oMaTable->loginQuiAfaitlAction=_root::getAuth()->getAccount()->login;
    J'avais essayer un code a peu près similaire mais je pense que je place le code mal, donc dans quel ficher ce code doit être mis ?

Discussions similaires

  1. Alimenter DBgrid avec requete SQL ?
    Par La_Bande_A_Zozo dans le forum C++Builder
    Réponses: 5
    Dernier message: 31/05/2006, 17h51
  2. [ACCESS][SQL] Problème avec requete SQL ...
    Par mpascolo dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 09/11/2005, 10h54
  3. Pb avec requete SQL
    Par Naud dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 06/07/2005, 19h13
  4. Pb avec requetes SQL
    Par Furtif_00 dans le forum Bases de données
    Réponses: 15
    Dernier message: 22/03/2004, 20h14
  5. probleme avec requete sql aime pas les strings
    Par lil_jam63 dans le forum Bases de données
    Réponses: 3
    Dernier message: 24/02/2004, 14h45

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