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 :

Problème avec la pagination coté serveur


Sujet :

MkFramework

  1. #21
    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
    Dans le tutoriel, au moment de générer la couche modèle, il faut cocher la case pour generer la méthode getSelect() pour certaines tables

    Je pense qu'en modifiant votre classe modèle vous avez du la supprimer par inadvertance

    Il vous faut dans votre classe model ajouter la méthode suivante:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public function getSelect(){
    		$tab=$this->findAll();
    		$tSelect=array();
    		if($tab){
    		foreach($tab as $oRow){
    			//adaptez ici "clePrimaire" (la cle primaire) et "champLibelle" au champ que vous souhaiter afficher
    			$tSelect[ $oRow->clePrimaire ]=$oRow->champLibelle;
    		}
    		}
    		return $tSelect;
    	}
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  2. #22
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    Ok voici mon code adapté (placé juste après findAll()):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public function getSelect(){
            		$tab=$this->findAll();
            		$tSelect=array();
            		if($tab){
            		foreach($tab as $oRow){
            			//adaptez ici "clePrimaire" (la cle primaire) et "champLibelle" au champ que vous souhaiter afficher
            			$tSelect[ $oRow->LACLE ]=$oRow->LACLE;
            	                                      	}
                                       }
            		return $tSelect;
            	                    }
    je n'ai pas de message d'erreur mais ma pager reste vide :
    Nom : Page Vide.JPG
Affichages : 61
Taille : 31,7 Ko

    Merci

  3. #23
    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
    Deux choses:
    Pour la méthode getSelect, la valeur du tableau ne doit pas etre la clé, sinon on perd l'intéret, ce doit etre le libelle a afficher à la place de celle-ci

    Ensuite, pour votre screenshot, en cliquant sur n'importe quel page, vous avez toujours un tableau vide ?
    Ce doit etre à cause de la perte de la variable recherche je pense:

    Quand vous faites une recherche, vous avez bien le tableau, avec les pages ?
    Et si vous cliquez sur une page, vous avez un tableau vide avec la liste des pages c'est bien ça ?
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  4. #24
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    Citation Envoyé par imikado Voir le message
    Deux choses:
    Pour la méthode getSelect, la valeur du tableau ne doit pas etre la clé, sinon on perd l'intéret, ce doit etre le libelle a afficher à la place de celle-ci
    Je ne suis pas trop mais je voudrais vous montrer ici l'ensemble du code de ma couche modele. j'espère vous aurez plus de details pour m'aiguiller
    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    <?php
    class model_MESINFORMATIONS extends abstract_model{
    
    	protected $sClassRow='row_MESINFORMATIONS';
    
    	protected $sTable='MESINFORMATIONS';
    	protected $sConfig='firebirdExple';
    
    	protected $tId=array('LACLE');
    
    	public static function getInstance(){
    		return self::_getInstance(__CLASS__);
    	}
    public function findById($uId){
    		return $this->findOne('SELECT * FROM '.$this->sTable.' WHERE LACLE=?',$uId );
    	}
    	public function findAll(){
    		return $this->findMany('SELECT * FROM '.$this->sTable.' WHERE PROJETCODE=16 ORDER BY CHAMP2 ASC ' );
    	}
    public function findavecparam($sParamRec){
    		return $this->findMany('SELECT * FROM MESINFORMATIONS  WHERE CHAMP1 LIKE :ParamRec', array('ParamRec'=>'%'.$sParamRec.'%')) ;
    	}
    public function getSelect(){
            		$tab=$this->findAll();
            		$tSelect=array();
            		if($tab){
            		foreach($tab as $oRow){
            			//adaptez ici "clePrimaire" (la cle primaire) et "champLibelle" au champ que vous souhaiter afficher
            			$tSelect[ $oRow->PROJETNOM ]=$oRow->PROJETNOM;
            		}
           }
            		return $tSelect;
            	}
    	public function findAllLimitedOrderBy($iOffset,$iLimit,$sField,$sSide){
          if(!in_array($sField, array('LACLE') ) ){
               $sField='LACLE';
              }
           if($sSide=='asc'){
           $side='ASC';
           }else{
           $side='DESC';
            }
           return $this->findMany('SELECT FIRST '.(int)$iLimit.' SKIP '.(int)$iOffset.' * FROM '.$this->sTable.' WHERE PROJETCODE=16 ORDER BY '.$sField.' '.$side.' ',$sField);
             }
    
    public function countAll(){
    	   $oRow=$this->findOneSimple('SELECT count(LACLE) as total FROM '.$this->sTable.' WHERE PROJETCODE=16');
    	  //  var_dump($oRow);
         //exit;
    	   if($oRow){
    	      return $oRow->TOTAL;
    	   }
    return 0;
    }
    	
    }
    
    class row_MESINFORMATIONS extends abstract_row{
    
    	protected $sClassModel='model_MESINFORMATIONS';
    
    	/*exemple jointure
    	public function findAuteur(){
    		return model_auteur::getInstance()->findById($this->auteur_id);
    	}
    	*/
    	/*exemple test validation*/
    	private function getCheck(){
    		$oPluginValid=new plugin_valid($this->getTab());
    
    
    		/* renseigner vos check ici
    		$oPluginValid->isEqual('champ','valeurB','Le champ n\est pas égal à '.$valeurB);
    		$oPluginValid->isNotEqual('champ','valeurB','Le champ est égal à '.$valeurB);
    		$oPluginValid->isUpperThan('champ','valeurB','Le champ n\est pas supé à '.$valeurB);
    		$oPluginValid->isUpperOrEqualThan('champ','valeurB','Le champ n\est pas supé ou égal à '.$valeurB);
    		$oPluginValid->isLowerThan('champ','valeurB','Le champ n\est pas inférieur à '.$valeurB);
    		$oPluginValid->isLowerOrEqualThan('champ','valeurB','Le champ n\est pas inférieur ou égal à '.$valeurB);
    		$oPluginValid->isEmpty('champ','Le champ n\'est pas vide');
    		$oPluginValid->isNotEmpty('champ','Le champ ne doit pas être vide');
    		$oPluginValid->isEmailValid('champ','L\email est invalide');
    		$oPluginValid->matchExpression('champ','/[0-9]/','Le champ n\'est pas au bon format');
    		$oPluginValid->notMatchExpression('champ','/[a-zA-Z]/','Le champ ne doit pas être a ce format');
    		*/
    
    		return $oPluginValid;
    	}
    
    	public function isValid(){
    		return $this->getCheck()->isValid();
    	}
    	public function getListError(){
    		return $this->getCheck()->getListError();
    	}
    	public function save(){
    		if(!$this->isValid()){
    			return false;
    		}
    		parent::save();
    		return true;
    	}
    
    }
    Quand je met un autre champ rien ne s'affiche toujours. Ensuite voici le code de ma fonction list() dans mon module :
    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
     
    public function _list(){
     
       //nombre d'enregristrements par page
       $iLimit=100;
       $sOrder=module_table::getParam('order','LACLE');
       $sSide=module_table::getParam('side','ASC');
       $iOffset=module_table::getOffset($iLimit);
       $iPage = module_table::getParam('page',NULL);
     
       //on appele une methode du modele qui prend attends les parametres de tri : champ et sens, en indiquant �galement les valeurs par d�faut
       $tMESINFORMATIONS=model_MESINFORMATIONS::getInstance()->findAllLimitedOrderBy($iOffset,$iLimit,$sOrder,$sSide);
       $iCount=model_MESINFORMATIONS::getInstance()->countAll();
     
       $oView=new _view('MESINFORMATIONS::listViaModule');
       $oView->tMESINFORMATIONS=$tMESINFORMATIONS;
       //on recupere un tableau indexe des auteurs pour afficher leur nom a la place de leur id
       $oView->tJoinMESINFORMATIONS=model_MESINFORMATIONS::getInstance()->getSelect();
     
       //pagination
       $oView->iCountRow=$iCount;
       $oView->iLimit=$iLimit;
     
       $this->oLayout->add('main',$oView);
    }
    Pour finir le code de la page listviamodule.php
    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
    51
    <?php
    $oTable = new module_table('complex4');
    //on active la pagination
    $oTable->enablePaginationServer();
    
    //on indique a la vue les informations de pagination
    $oTable->setPaginationLimit($this->iLimit);
    $oTable->setPaginationMax($this->iCountRow);
    
    //on defini la classe du tableau
    $oTable->setClass('tb_list');
    //on defini une liste de classe d'alternance (pour alterner les lignes du tableau)
    $oTable->setCycleClass(array('alt','alt2'));
    
    //on defini l'entete du tableau avec tri en indiquant le nom du champ
    $oTable->addHeaderWithOrder('Nom Ecole','PROJETNOM');
    $oTable->addHeaderWithOrder('Matricule','CHAMP1');
    $oTable->addHeaderWithOrder('Nom','CHAMP2');
    $oTable->addHeaderWithOrder('Prenoms','CHAMP3');
    $oTable->addHeaderWithOrder('Ne(e) le','CHAMP4');
    $oTable->addHeaderWithOrder('Lieu','CHAMP5');
    $oTable->addHeaderWithOrder('Niveau','CHAMP6');
    $oTable->addHeaderWithOrder('Filiere','CHAMP7');
    $oTable->addHeaderWithOrder('Ufr','CHAMP8');
    $oTable->addHeaderWithOrder('Photo','CHEMINFOTO');
    $oTable->addHeaderWithOrder('Annee','EXOENCOURS');
    $oTable->addHeader('');
    
    //on boucle pour remplir le tableau
    if($this->tMESINFORMATIONS){
       foreach($this->tMESINFORMATIONS as $oMESINFORMATIONS){
          
           $sMESINFORMATIONS=null;
           if(isset($this->tJoinMESINFORMATIONS[ $oMESINFORMATIONS->LACLE])){
               $sMESINFORMATIONS= $this->tJoinMESINFORMATIONS[ $oMESINFORMATIONS->LACLE];
           }
          
           //on ajoute une ligne dans le tableau
               $oTable->addLine(array(
               $oMESINFORMATIONS->PROJETNOM,
               $oMESINFORMATIONS->CHAMP1,
               '<a href="'.$this->getLink('MESINFORMATIONS::edit',array('id'=>$oMESINFORMATIONS->getId()) ).'">Edit</a>
               |
               <a href="'.$this->getLink('MESINFORMATIONS::show',array('id'=>$oMESINFORMATIONS->getId()) ).'">Show</a>
               |
               <a href="'.$this->getLink('MESINFORMATIONS::delete',array('id'=>$oMESINFORMATIONS->getId()) ).'">Delete</a>'
           ));
       }
    }
    echo $oTable->build()->show();
    La partie en gras me semble incomplète Mais je n'arrive pas a voir

    Citation Envoyé par imikado Voir le message
    Ensuite, pour votre screenshot, en cliquant sur n'importe quel page, vous avez toujours un tableau vide ?
    Ce doit etre à cause de la perte de la variable recherche je pense:
    Oui j'ai un tableau vide quand je clique sur n'importe quelle page.

    Citation Envoyé par imikado Voir le message
    Quand vous faites une recherche, vous avez bien le tableau, avec les pages ?
    Et si vous cliquez sur une page, vous avez un tableau vide avec la liste des pages c'est bien ça ?
    je comprend pas bien la question ? vous faites allusion a ma page de recherche ? si oui cette page marche sans problème (Mais sans la mise en forme du tableau):
    Nom : recherche.JPG
Affichages : 81
Taille : 37,8 Ko

    c'est ma page Qui me pause des problèmes

    Merci

  5. #25
    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
    Nous allons éssayer avec ceci:

    J'ai ajouté dans la vue le code suivant:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //ajout recuperation de la variable recheche
    $oTable->setRootLink('MESINFORMATIONS::list',array('recherche' => _root::getParam('recherche') ));


    ce qui donnera:
    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
    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
    51
    52
    53
    54
    <?php
    $oTable = new module_table('complex4');
    //on active la pagination
    $oTable->enablePaginationServer();
    
    //ajout recuperation de la variable recheche
    $oTable->setRootLink('MESINFORMATIONS::list',array('recherche' => _root::getParam('recherche') ));
    
    //on indique a la vue les informations de pagination
    $oTable->setPaginationLimit($this->iLimit);
    $oTable->setPaginationMax($this->iCountRow);
    
    //on defini la classe du tableau
    $oTable->setClass('tb_list');
    //on defini une liste de classe d'alternance (pour alterner les lignes du tableau)
    $oTable->setCycleClass(array('alt','alt2'));
    
    //on defini l'entete du tableau avec tri en indiquant le nom du champ
    $oTable->addHeaderWithOrder('Nom Ecole','PROJETNOM');
    $oTable->addHeaderWithOrder('Matricule','CHAMP1');
    $oTable->addHeaderWithOrder('Nom','CHAMP2');
    $oTable->addHeaderWithOrder('Prenoms','CHAMP3');
    $oTable->addHeaderWithOrder('Ne(e) le','CHAMP4');
    $oTable->addHeaderWithOrder('Lieu','CHAMP5');
    $oTable->addHeaderWithOrder('Niveau','CHAMP6');
    $oTable->addHeaderWithOrder('Filiere','CHAMP7');
    $oTable->addHeaderWithOrder('Ufr','CHAMP8');
    $oTable->addHeaderWithOrder('Photo','CHEMINFOTO');
    $oTable->addHeaderWithOrder('Annee','EXOENCOURS');
    $oTable->addHeader('');
    
    //on boucle pour remplir le tableau
    if($this->tMESINFORMATIONS){
       foreach($this->tMESINFORMATIONS as $oMESINFORMATIONS){
          
           $sMESINFORMATIONS=null;
           if(isset($this->tJoinMESINFORMATIONS[ $oMESINFORMATIONS->LACLE])){
               $sMESINFORMATIONS= $this->tJoinMESINFORMATIONS[ $oMESINFORMATIONS->LACLE];
           }
          
           //on ajoute une ligne dans le tableau
               $oTable->addLine(array(
               $oMESINFORMATIONS->PROJETNOM,
               $oMESINFORMATIONS->CHAMP1,
               '<a href="'.$this->getLink('MESINFORMATIONS::edit',array('id'=>$oMESINFORMATIONS->getId()) ).'">Edit</a>
               |
               <a href="'.$this->getLink('MESINFORMATIONS::show',array('id'=>$oMESINFORMATIONS->getId()) ).'">Show</a>
               |
               <a href="'.$this->getLink('MESINFORMATIONS::delete',array('id'=>$oMESINFORMATIONS->getId()) ).'">Delete</a>'
           ));
       }
    }
    echo $oTable->build()->show();
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  6. #26
    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
    On va reprendre de zéro:

    Quel page ne marche pas ? list ou recherche ?

    Ensuite: sur la page liste: quand vous arrivez dessus, le tableau est vide ou non ?
    Ensuite, quand vous cliquez sur l'une des pages listés en dessous, le tableau est vide ou non ?
    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. #27
    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
    J'essaie en parallèle de me créé un petit environnement avec une base firebird

    Note: pourquoi ce choix ? pourquoi pas un mysql/posgresql ou autre ?
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  8. #28
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    Citation Envoyé par imikado Voir le message
    On va reprendre de zéro:

    Quel page ne marche pas ? list ou recherche ?
    c'est la page list qui ne marche pas.

    Citation Envoyé par imikado Voir le message
    Ensuite: sur la page liste: quand vous arrivez dessus, le tableau est vide ou non ?
    Oui le tableau est vide

    Citation Envoyé par imikado Voir le message
    Ensuite, quand vous cliquez sur l'une des pages listés en dessous, le tableau est vide ou non ?
    le tableau reste vide

    Citation Envoyé par imikado Voir le message
    Note: pourquoi ce choix ? pourquoi pas un mysql/posgresql ou autre ?
    c'est la base de donnée de l'existant. Plusieurs Application tourne avec déja. Mon projet est de monter une appli web avec cette base pour la scolarité.

    Merci

  9. #29
    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
    Ok, c'est juste sur le tableau de listage, mon environnement est en cours d'installation

    Pouvez vous me donner l'exemple de votre table, je la remplirai avec des données bidon
    Puis-je avoir pour la table informations quelques champs histoire de poster du code au plus près de votre exemple
    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. #30
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    ok Voici un extrait du DDL de la table que je manipule
    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
    /******************************************************************************/
    /***                                 Tables                                 ***/
    /******************************************************************************/
     
     
    CREATE TABLE MESINFORMATIONS (
        LACLE           INTEGER NOT NULL,/*autoincréùentée*/
        CHAMP1          VARCHAR(80) NOT NULL,
        CHAMP2          VARCHAR(80),
        CHAMP3          VARCHAR(80),
        CHAMP4          VARCHAR(80),
        CHAMP5          VARCHAR(80),
        CHAMP6          VARCHAR(80),
        CHAMP7          VARCHAR(80),
        CHAMP8          VARCHAR(80),
        PROJETNOM       VARCHAR(80),
        CHEMINFOTO      VARCHAR(400),
        EXOENCOURS      VARCHAR(20),
     );
     
    /******************************************************************************/
    /***                              Primary Keys                              ***/
    /******************************************************************************/
     
    ALTER TABLE MESINFORMATIONS ADD PRIMARY KEY (LACLE);
    merci

  11. #31
    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
    Merci, j'ai trouvé: avec votre code j'étais dans la meme situation (bonne chose: j'arrivais à reproduire)

    Il suffit de changer la méthode findAllLimitedOrderBy() de la classe model:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    return $this->findMany('SELECT FIRST '.(int)$iLimit.' SKIP '.(int)$iOffset.' * FROM '.$this->sTable.'  ORDER BY '.$sField.' '.$side.' ');

    au lieur de:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    return $this->findMany('SELECT FIRST '.(int)$iLimit.' SKIP '.(int)$iOffset.' * FROM '.$this->sTable.'  ORDER BY '.$sField.' '.$side.' ',$sField);
    En enlevant donc le ",$sField" qui ne servait plus à rien
    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. #32
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    Bravo ! la ça marche impec
    Mais j'ai quelques questions :
    1/ A quoi sert donc le code en rouge dans la methode getselect()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public function getSelect(){
            		$tab=$this->findAll();
            		$tSelect=array();
            		if($tab){
            		foreach($tab as $oRow){
            			//adaptez ici "clePrimaire" (la cle primaire) et "champLibelle" au champ que vous souhaiter afficher
            			$tSelect[ $oRow->LACLE ]=$oRow->LACLE;
            		}
           }
            		return $tSelect;
            	}
    2/ Est il possible d'afficher les photos (j'ai les chemins d’accès aux photos dans ma base) ?
    Comment procéder ?

    Merci pour votre promptitude ! et merci pour cet outil fabuleux

  13. #33
    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
    1/ A quoi sert donc le code en rouge dans la methode getselect()

    L'idée de getSelect est simple:
    On constitue un tableau clé/valeur de certaines tables pour faciliter l'affichage et eviter certaines jointures:

    Exemple: vous avez une table d'auteurs, qui contient l'id, le nom et le prénom, et vous avez une table article qui fait le lien avec son auteur via un champ "auteur_id"

    Vous faites dans votre classe model_auteur, une méthode getSelect du type:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public function getSelect(){
    		$tab=$this->findAll();
    		$tSelect=array();
    		if($tab){
    		foreach($tab as $oRow){
    			$tSelect[ $oRow->id ]=$oRow->nom. ' '.$oRow->prenom.;
    		}
    		}
    		return $tSelect;
    	}

    Ainsi, on a un tableau dont la clé est l'id de l'auteur et la valeur le couple nom/prénom correspondant

    Ainsi en listant les articles, plutot que d'afficher auteur_id = 3, on aura auteur_id = tableauGetSelect[ 3 ] => Victor Hugo


    2/ Est il possible d'afficher les photos (j'ai les chemins d’accès aux photos dans ma base) ?
    Comment procéder ?

    Oui bien sur, ajouter dans votre vue:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img src="<?php echo $oInformation->adresseDeLimage?>"/>
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [PEAR][Mail] Problème sur le serveur
    Par Kajan dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 28/06/2010, 22h00
  2. [Système] Problème avec ma pagination.
    Par Peuplarchiste dans le forum Langage
    Réponses: 1
    Dernier message: 25/02/2008, 11h58
  3. Réponses: 2
    Dernier message: 15/10/2007, 01h08
  4. Problème avec la pagination
    Par Vlacar dans le forum ASP
    Réponses: 4
    Dernier message: 25/02/2007, 18h20

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