Création d'un composant Joomla: requête ?
Posté : 09 févr. 2007, 19:35
Bonjour,
Je suis un adepte du portail Joomla! (CMS) et je me suis dit qu'il fallait que j'apporte moi aussi ma pierre à l'édifice en créant un composant ! Voici un beau programme surtout quand on sait que je ne suis pas programmeur et c'est bien pour cela que je coince et je viens vous demander un peu d'aide.
Donc j'ai 2 tables:
Le système Joomla est assez spécial et pour envoyer vers une autre page, j'utilise une fonction. Il faut donc ajouter ceci à la requête:
Cela c'était juste pour l'information pour expliquer que je récupére les données sur une autre page dont voici le code qui nous intéresse:
Le problème est que je voudrais que la requête se fasse sur 2 tables pour que la catégorie de la personne soit prise en compte et surtout affiché donc je transforme ma requete ainsi:
Là, j'ai déjà un gros soucis ... il me prend toutes les personnes de la table et pas seulement dont l'age est <= à 19 ans ! De plus, la requete me renvoit chacune des personnes 14X (nbre de catégorie) accompagné de toutes les catégories !
Plus rien ne va si j'introduits cette ligne en plus:
Y'a-t-il une bonne âme qui pourrait m'aider, me donner des trucs pour trouver l'erreur, ... d'avance merci
Je suis un adepte du portail Joomla! (CMS) et je me suis dit qu'il fallait que j'apporte moi aussi ma pierre à l'édifice en créant un composant ! Voici un beau programme surtout quand on sait que je ne suis pas programmeur et c'est bien pour cela que je coince et je viens vous demander un peu d'aide.
Donc j'ai 2 tables:
- jos_societaire (id_societaire, nom, prenom, sexe, date, naissance)
jos_acrho_cat (id_categorie, nom_categorie, age_min, age_max)
Code : Tout sélectionner
$requete = "SELECT t1.id_societaire, t1.nom, t1.prenom, t1.sexe, YEAR(NOW()) - YEAR(t1.naissance) AS age"
. "\n FROM jos_societaire AS t1"
. "\n WHERE (YEAR(NOW()) - YEAR(t1.naissance) BETWEEN 0 AND 19)"
. "\n ORDER BY t1.nom ASC"
;Code : Tout sélectionner
$database->setQuery( $requete );// met le bon préfixe à la table
$espoirslist = $database->loadObjectList ();
//print_r($espoirslist);
$resultat = $database->getQuery();
//echo $resultat;
societaire_html::categorie($mosConfig_live_site, $link, $espoirslist, $resultat);
}<?php
function categorie($url, $link, $espoirslist, $resultat) {
echo $resultat;
?>
</p>
<table width="100%" border="1" cellspacing="1" cellpadding="1">
<tr>
<td><div align="center">Nom</div></td>
<td><div align="center">Prénom</div></td>
<td><div align="center">Catégorie</div></td>
</tr>
<?php //echo count($espoirslist).' enregistrement(s).<br />';
if ( count($espoirslist) > 0 )
{
foreach ($espoirslist as $espoir){
?>
<tr>
<td><?php echo $espoir->nom; ?></td>
<td><?php echo $espoir->prenom; ?></td>
<td><div align="center"><?php echo $espoir->nom_categorie; ?> <?php echo $espoir->age; ?></div></td>
</tr>
<?php
}
}else{
echo '$espoirslist est vide';
}
?>
<?php
}
?>
Ne faites pas trop attention aux diff. balises car cela fonctionne en l'état ... c'est juste pour un peu visualisé le problème !Le problème est que je voudrais que la requête se fasse sur 2 tables pour que la catégorie de la personne soit prise en compte et surtout affiché donc je transforme ma requete ainsi:
Code : Tout sélectionner
$requete = "SELECT t1.id_societaire, t1.nom, t1.prenom, t1.sexe as sexe1, YEAR(NOW()) - YEAR(t1.naissance) AS age, t2.nom_categorie, t2.sexe as sexe2"
. "\n FROM jos_societaire AS t1, jos_acrho_cat AS t2"
. "\n WHERE YEAR(NOW()) - YEAR(t1.naissance) BETWEEN t2.age_min AND YEAR(NOW()) - YEAR(naissance) <= 19"
. "\n ORDER BY t1.nom ASC"
;Plus rien ne va si j'introduits cette ligne en plus:
Code : Tout sélectionner
. "\n INNER JOIN jos_acrho_cat ON t1.sexe = t2.sexe"