Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour j'essaye de faire un module pour joomla j'ai un message d'erreur
Voici mon code si quelqu'un voit l'erreur ça serai sympa:
$detailssoustype = $model->getdetailssoustype($item->id_soustype);
if($item->image_list)
$image = 'images/formation/type/'.$detailssoustype['typeimage'];
else
$image = 'images/formation/type/'.$detailssoustype['typeimage'];
echo '<br><div class="evenement">';
echo '<div class="groupeventhome">'.$detailssoustype['type'].'</div>';
echo '<a href="index.php?option=com_formation&view=categorie&layout=categorie-event&id='.$id_type.'&Itemid=14"><img height ="180" width ="276" src ="'.$image.'" /></a><div class="evenementimg"><a href="index.php?option=com_formation&view=categorie&layout=categorie-event&id='.$id_type.'&Itemid=14"><img height ="180" width ="276" src ="/images/stories/fond-opacity.png" /></a></div>';
echo '</div>';
}
Le message d'erreur m'indique que l'erreur vient de cette ligne
Warning: Invalid argument supplied for foreach() in /www/modules/mod_derniere_evnement2/mod_derniere_evnement2.php on line 13
foreach ($list as $item) {
Merci d'avance de votre aide.
Hors ligne
Saluton,
Merici de ne pas relancer les hostilités de la guerre des étoiles.
Apparemment ce CMS utilise une abstraction d'accès aux BDD (PEAR DB ?) dont la méthode loadobjectlist() est censée retourner un array.
Que donne un var_dump($list) en lieu et place de la boucle foreach ?
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Tout d'abord merci de ton aide
Var_dump($list) me donne NULL.
Qu'est ce que cela veut dire ?
Est ce que $list est vide ?
Merci
Hors ligne
Je viens d'essayer les requetes suivantes dans phpmyadmin
SELECT *
FROM jos_f_evenement
LEFT JOIN jos_f_soustype AS st ON id_soustype = st.id
AND st.id_type = '33'
LIMIT 0 , 830
Résultat >> Aucun filtrage tous est liste
SELECT *
FROM jos_f_evenement
RIGHT JOIN jos_f_soustype AS st WHERE id_soustype = st.id
AND st.id_type = '33'
LIMIT 0 , 830
Résultat >> Aucun filtrage tous est liste avec des null par endroit
SELECT *
FROM jos_f_evenement, jos_f_soustype st WHERE id_soustype = st.id AND st.id_type = '33'
LIMIT 0 , 830
Résultat >> Ok le filtrage est fait il n'affiche que les événements qui ont en commun id type 33
Par contre quand je test le code dans ma page php il n'y a toujours pas de résultat
Résultat >> NULL 33
Et le meme code sans le var_dump et le if
Résultat >> Message d'erreur suivant
Warning: Invalid argument supplied for foreach() in /www/modules/mod_derniere_evnement2/mod_derniere_evnement2.php on line 14
33
Je ne comprend pas pourquoi cela fonctionne sur php my admin mais pas dans ma page php.
SI quelqu'un à une piste !!
Hors ligne
Il est évident que la requête soumise ne retourne pas de résultat.
IL te faut tester en amont toute la chaîne de connexion de $db.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Merci mais peut tu me dire comment je fais pour tester toute la chaine de connexion de $db
Parce que si c'est pour vérifier la connexion à la base, je pense qu'elle se fait bien
Hors ligne
Je ne sais pas, je n'ai jamais utilisé JOOMLA, et je ne sais pas quel module d'abstraction aux BD il utilise.
Mais de ce que j'en vois, ça fait pas envie.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bon finalement c'était un problème d'espace dans ma requête !!! grrrr !!
Néanmoins j'ai un autre problème
j'essaie de modifier un filtre de recherche qui doit lister les événement en fonction de certain critere (qui, quand, ou) cela fonctionne bien mais il la fonction qui doit calculer le nombre de resultat ne fonctionne pas
Voici le code de ma page
$db = & JFactory :: getDBO();
$result = array();
$filter = $this->createwheresaad();
$where = ' where e.published = 1 ';
$where .= ' and e.id_soustype = st.id';
$where .= ' and st.id_type = '.$type.'';
$query1 = "SELECT COUNT(e.id) FROM #__f_evenement e, #__f_soustype st ";
if($filter)
$query1 .= $filter ;
$query1 .= ' and e.id_soustype = st.id';
$query1 .= ' and st.id_type = '.$type.'';
$db->setQuery($query1);
$total = $db->loadResult();
$query1 = "SELECT COUNT(e.id) FROM #__f_evenement e, #__f_soustype st ";
if($filter)
$query1 .= $filter;
$db->setQuery($query1);
$totalcategorie = $db->loadResult();
//$arrayquand = "('Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche')";
$query2 = "SELECT distinct JOUR_DEBUT,JOUR_FIN FROM #__f_evenement ".$filter." order by JOUR_DEBUT ";
$db->setQuery($query2);
$date_afficher = $db->loadObjectList();
$query2 = "SELECT count(*) FROM (SELECT distinct JOUR_DEBUT, JOUR_FIN FROM #__f_evenement ".$filter.") as saad ";
$db->setQuery($query2);
$totaldate = $db->loadResult();
$query3 = "SELECT count(*) FROM #__f_evenement ".$filter." and HFIN < '12:00' ";
$db->setQuery($query3);
$horaire_afficher['matin'] = $db->loadresult();
$query3 = "SELECT count(*) FROM #__f_evenement ".$filter." and (HDEB >= '12:00' and HFIN <= '14:00') ";
$db->setQuery($query3);
$horaire_afficher['midi'] = $db->loadresult();
$query3 = "SELECT count(*) FROM #__f_evenement ".$filter." and (HDEB > '14:00' and HFIN <= '18:00') ";
$db->setQuery($query3);
$horaire_afficher['apresmidi'] = $db->loadresult();
$query3 = "SELECT count(*) FROM #__f_evenement ".$filter." and HDEB > '18:00' ";
$db->setQuery($query3);
$horaire_afficher['soir'] = $db->loadresult();
$query3 = "SELECT count(*) FROM #__f_evenement ".$filter." and (HDEB <= '10:00' and HFIN >= '17:00') ";
$db->setQuery($query3);
$horaire_afficher['journeeentiere'] = $db->loadresult();
$query = "SELECT *, e.id as eid FROM #__f_evenement e, #__f_soustype st ";
if($filter)
$query .= $filter;
$query .= ' order by st.id ';
$db->setQuery($query,$this->limitstart, $limit);
$this->_application = $db->loadObjectList();
$saad=$query;
$query = 'SELECT lieu , count(*) as counter FROM #__f_evenement '.$filter.' group by lieu ' ;
$db->setQuery($query);
$lieu = $db->loadObjectlist();
$query = 'select id, Nom_Lieu from #__f_lieuHY where id in (select distinct(lieu) FROM #__f_evenement ) order by Nom_Lieu' ;
$db->setQuery($query);
$lieunom = $db->loadObjectlist();
$result[0] = $this->_application;
$result[1] = $total;
$result[2] = $date_afficher;
$result[3] = $horaire_afficher;
$result[4] = $lieu;
$result[5] = $lieunom;
$result[6] = $totalcategorie;
$result[7] = $saad;
$result[8] = $totaldate;
return $result;
}
et
}
}
if($type) {
//$typevalue = implode('","', $type);
$where .= ' and e.id_soustype = st.id';
$where .= ' and st.id_type = '.$type.'';
}
return $where ;
}
C'est surtout c'est ligne la qui pose problème me semble t'il
et
Lorsque j'enlève le '.$filter.' pour les 2 requetes j'ai bien un résultat qui s'affiche mais il ne filtre pas il compte tous les événements alors qu'il devrait prendre en compte les événement qui ont
where e.published = 1
and e.id_soustype = st.id
and st.id_type = '.$type.'
Donc uniquement ceux qui ont st.id_type = '$type'
Du coup dans ma page php qui utilise cette fonction
j'ai les message d'erreur suivant
Warning: Invalid argument supplied for foreach() in www/components/com_formation/views/categorie/tmpl/list-stage.php on line 377
Et si je fait un var_dump il m'affiche null pour les deux, par contre la fonction de filtrage au clic de la checbox fonctionne.
Merci d'avance à tous ceux qui se seront intéressé a ce problème.
Hors ligne
Comme tu sembles avoir des problèmes avec les quotes et les guillemets, je te conseille plutôt d'utiliser sprintf() pour construire tes requêtes.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Pages :: 1