bonjour MKDO,
après avoir créer mon site, j'ai du mal à joindre les tables
Version imprimable
bonjour MKDO,
après avoir créer mon site, j'ai du mal à joindre les tables
Salut,
Dans ton modèle tu as un truc du genre :
Rien ne t'empêche de compléter ton modèle de la sorte :Code:
1
2 protected $sTable='test_maTable'; protected $sConfig='pdoMysqlMaBDD';
Code:
1
2
3
4 protected $sTable='test_maTable'; protected $sTable2='test_maTable2'; protected $sTable3='test_maTable3'; protected $sConfig='pdoMysqlMaBDD';
Puis ensuite créer ta requête :
Au plaisir,Code:
1
2
3
4
5
6
7 public function findInfoInMyTables($sMaVariable){ return $this->findOne('SELECT table1.valueName,table3.valueCoord, table2.valueExpression FROM '.$this->sTable.' as table1 INNER JOIN '.$this->sTable2.' as table2 on table2.Id=table1.Expression_id INNER JOIN '.$this->sTable3.' as table 3 on table3.id=table1.Coord_id WHERE table2.Condition=?',$sMaVariable); }
Merci pour les codes. maos j'ai essayé et ça me donne un message d'erreur à la ligne31.
//voici le contenu d'une page modèle sur la quelle je travaille
<?php
class model_atmaster extends abstract_model{
protected $sClassRow='row_atmaster';
protected $sTable='atmaster';
protected $sTable2='bo';
protected $sTable3='postillon';
protected $sConfig='pdoMysqlExple';
protected $tId=array('id_atmaster');
public static function getInstance(){
return self::_getInstance(__CLASS__);
}
public function findById($uId){
return $this->findOne('SELECT * FROM '.$this->sTable.' WHERE id_atmaster=?',$uId );
}
public function findByp_key($uKey){
return $this->findOne('SELECT * FROM '.$this->sTable.' WHERE authorization_id=?',$uKey );
}
public function findAll(){
return $this->findMany('SELECT * FROM '.$this->sTable);
}
//jointure
public function findRef($sMavariable){
return $this->findOne('SELECT atmaster.authorization_id, bo.trn_ref_no, bo.txn_amt, postillon.auth_id_rsp FROM'.$this->.' as bo
INNER JOIN'.$this->sTable2.' as bo on bo.id=id_bo
INNER JOIN' .$this->sTable3.' as postillon on postillon.id=id_.postillon
WHERE bo.rrn=?',$sMavariable);
}
}
class row_atmaster extends abstract_row{
protected $sClassModel='model_atmaster';
/*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;
}
}
Pour le prochain post pense à bien utiliser les balises CODE c'est le # dans le menu d'édition du forum. (Tu dois pouvoir encore modifier ton Post)
pour ton code il s'agit d'un oublie de ta part et d'un faute de déclaration :
Code:
1
2
3
4
5
6
7
8 public function findRef($sMavariable){ return $this->findOne('SELECT atmaster.authorization_id, bo.trn_ref_no, bo.txn_amt, postillon.auth_id_rsp FROM'.$this->sTable.' as bo INNER JOIN'.$this->sTable2.' as bo2 on bo2.id=id_bo INNER JOIN' .$this->sTable3.' as postillon on postillon.id=id_.postillon WHERE bo.rrn=?',$sMavariable); }
MERCI beaucoup.
le code passe, et l'erreur a disparu.
bizarrement le tri n'est pas effectué et toutes les données insérées dans la base sont affichées. je ne veux obtenir que les champs sélectionnés si possible.
cordialement
De rien,
Il s'agit certainement d'une erreur dans les jointures de ta requête SQL.
Là je ne peux rien pour toi, si ce n'est t'orienter vers les différents tutos que tu trouves sur la toiles et qui traitent de ce sujet.
A+