bonjour MKDO,
après avoir créer mon site, j'ai du mal à joindre les tables
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 protected $sTable='test_maTable'; protected $sConfig='pdoMysqlMaBDD';
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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); }
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !
Albert Einstein
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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); }
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !
Albert Einstein
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+
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !
Albert Einstein
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager