[SPIP Zone] Pb de codage d'une boucle

Bonjour,

Je souhaite créer un critère permettant à une boucle de regrouper les items
identiques et de les comptabiliser.

J'utilise donc la définition de critere suivant :

function critere_fusion_patronyme($idb, &$boucles, $crit) {
  $boucle = &$boucles[$idb];
  $type = $boucle->type_requete;

  $boucles[$idb]->group[] = 'patronyme';
  $boucles[$idb]->select[] = 'patronyme, COUNT(patronyme) AS important';
  $boucles[$idb]->order[] = 'important';
}

Qui me donne le code SQL suivant :

SELECT patronyme, COUNT(patronyme) AS important, genea_individus.patronyme
FROM `br`.spip_genea_individus AS `genea_individus`
GROUP BY patronyme
ORDER BY important

J'appelle ce critere dans la boucle suivante :

<BOUCLE_test(GENEA_INDIVIDUS){fusion_patronyme}>
  <p>#PATRONYME - #IMPORTANT</p>
</BOUCLE_test>

Le soucis, c'est que si le regroupement se fait bien, je n'arrive pas à
récuperer l'information contenu dans la variable SQL 'important'

Donc voici ma question, comment puis-je la récupérer ?

Merci d'avance pour votre aide.

Cordialement,

Xavier BUROT
http://xebiaut.free.fr

Xavier BUROT a écrit :

Bonjour,

Je souhaite créer un critère permettant à une boucle de regrouper les items
identiques et de les comptabiliser.

J'utilise donc la définition de critere suivant :

function critere_fusion_patronyme($idb, &$boucles, $crit) {
  $boucle = &$boucles[$idb];
  $type = $boucle->type_requete;

  $boucles[$idb]->group = 'patronyme';
  $boucles[$idb]->select = 'patronyme, COUNT(patronyme) AS important';
  $boucles[$idb]->order = 'important';
}
  
regarde : Connexion · GitLab
je pense qu'il faut faire comme pour frequence : :
function balise_IMPORTANT_dist($p) {
       $p->code = '$Pile[$SP][\'important\']';
      $p->interdire_scripts = false;
      return $p;
}

@++

PS : pourquoi ne pas utiliser le critère frequence d'ailleurs ?
pour ce que tu fais, la version stable (plugin nuage) suffit, tu doit pouvoir te contenter de :

Merci cela marche du tonnerre.

Xavier BUROT

Selon Stephane <stephane@rezo.net>:

Xavier BUROT a écrit :
> Bonjour,
>
> Je souhaite créer un critère permettant à une boucle de regrouper les items
> identiques et de les comptabiliser.
>
> J'utilise donc la définition de critere suivant :
>
> function critere_fusion_patronyme($idb, &$boucles, $crit) {
> $boucle = &$boucles[$idb];
> $type = $boucle->type_requete;
>
> $boucles[$idb]->group = 'patronyme';
> $boucles[$idb]->select = 'patronyme, COUNT(patronyme) AS important';
> $boucles[$idb]->order = 'important';
> }
>

regarde :

je pense qu'il faut faire comme pour frequence : :
function balise_IMPORTANT_dist($p) {
       $p->code = '$Pile[$SP][\'important\']';
      $p->interdire_scripts = false;
      return $p;
}

@++

PS : pourquoi ne pas utiliser le critère frequence d'ailleurs ?
pour ce que tu fais, la version stable (plugin nuage) suffit, tu doit
pouvoir te contenter de :

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

Bonjour,

Je souhaite créer un critère permettant à une boucle de
regrouper les items identiques et de les comptabiliser.

Si tu ne veux/peux pas le faire en SQL, tu peux utiliser le critère |unique
et un critère sur mesure qui ferra le comptage...