foreach bizarre

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] foreach bizarre

    Version de la base de données 5.5.20-log
    Interclassement de la base de données utf8_general_ci
    Version de PHP 5.3.10
    Serveur web Apache/2.2.21 (Win64) mod_ssl/2.2.21 OpenSSL/1.0.0g PHP/5.3.10
    Serveur web pour interface PHP apache2handler
    Version de Joomla Joomla! 2.5.11 Stable [ Ember ] 26-April-2013 14:00 GMT
    Version de la plateforme Joomla! Joomla Platform 11.4.0 Stable [ Brian Kernighan ] 03-Jan-2012 00:00 GMT

    Bonjour,
    j'ai un problème avec un foreach qui ne me donne pas le résultat attendu.
    Le but est de produire une liste.
    je doit récupérer depuis les paramètres d'un module les catégories sélectionnées d'une liste de contact
    puis a partir de ces id récupérer le titre dans la base de données
    j"ai les id 85 et 86 dont les titres sont musique et spectacle
    Le code ci-dessous devrait produire l'affichage suivant

    No categorie = 85 titre = musique
    No categorie = 86 titre = spectacle

    j'obtiens cela

    No categorie = 85 titre = musique
    No categorie = 86 titre =

    Une idée d'ou vient l'erreur?
    Merci


    Code PHP:
    $db JFactory::getDbo();
    $query $db->getQuery(true);
            
    $categories_array $params->get('category', array());

    foreach (
    $categories_array as $category
        {

    $query->select('title');
    $query->from('#__categories');
    $query->where('id='.$category);

    $db->setQuery($query);
    $liste $db->loadResult();
    echo
    "No categorie = ".$category." titre= ".$liste."<br>"
    Dernière édition par Riseryn à 07/08/2013, 13h00

  • #2
    Re : foreach bizarre

    Bonjour,

    Premièrement, je pense qu'il ne faut pas mettre de requête dans un foreach.
    Quelque chose du genre sera plus utilisable et plus simple grâce à IN et implode :
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);

    $categories_array = $params->get('category', array());
    $query->select('title');
    $query->from('#__categories');
    $query->where('id IN('.implode(',',$categories_array).')');

    $db->setQuery($query);
    $liste = $db->loadObjectList();
    et après tu peux faire un foreach sur $liste. Si cela ne fonctionne toujours pas, essaie de voir la requête avec
    echo $db->getQuery();

    Ainsi, tu pourras même la tester en live dans ton phpMyAdmin si tu en as un. Si ça te sort toujours qu'un résultat, il reste plus qu'à vérifier que l'id existe bien.
    Dernière édition par alanp à 07/08/2013, 12h31
    Sekator.ch, créateur de sites web : http://sekator.ch

    Commentaire


    • #3
      Re : foreach bizarre

      Merci beaucoup, mon problème est résolu

      Commentaire

      Annonce

      Réduire
      Aucune annonce pour le moment.

      Partenaire de l'association

      Réduire

      Hébergeur Web PlanetHoster
      Travaille ...
      X