From 0f1718f2beb26e7af9eef8f78f93d242a0639bea Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Tue, 14 Aug 2007 22:37:36 +0000
Subject: [PATCH] =?UTF-8?q?#209=20Compilation=20du=20critere=20IN=20toujou?=
 =?UTF-8?q?rs=20par=20FIELD,=20mais=20dans=20le=20WHERE=20et=20plus=20dans?=
 =?UTF-8?q?=20le=20Having=20ref=C3=A9ren=C3=A7ant=20le=20Select,=20PG=20ne?=
 =?UTF-8?q?=20sait=20pas=20faire.=20Il=20y=20a=20peut-etre=20une=20meilleu?=
 =?UTF-8?q?r=20compromis=20entre=20PG=20et=20MySQL=20mais=20au=20moins=20c?=
 =?UTF-8?q?elui-l=C3=A0=20fonctionne.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Avec ça la boucle documents du squelette dist/article fonctionne, et sauf erreur c'était le dernier squelette de dist/ qui ne marchait pas en PG.
---
 ecrire/public/criteres.php | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/ecrire/public/criteres.php b/ecrire/public/criteres.php
index 1afb2fecee..335d790995 100644
--- a/ecrire/public/criteres.php
+++ b/ecrire/public/criteres.php
@@ -682,14 +682,13 @@ function critere_IN_dist ($idb, &$boucles, $crit)
 			$op = '<>';
 	} else $op = '=';
 
-	$arg = "FIELD($arg,\" . _q($var) . \")";
-	if ($boucles[$idb]->group) $arg = "SUM($arg)";
-	$boucles[$idb]->select[]=  "$arg AS cpt$cpt";
-	$op = array("'$op'", "'cpt$cpt'", 0);
+	$arg = "'FIELD($arg,' . _q($var) . ')'";
+	$boucles[$idb]->select[]=  "\" . $arg . \" AS cpt$cpt";
+	$op = array("'$op'", $arg, 0);
 
 //	inserer la condition; exemple: {id_mot ?IN (66, 62, 64)}
 
-	$boucles[$idb]->having[]= (!$crit->cond ? $op :
+	$boucles[$idb]->where[]= (!$crit->cond ? $op :
 	  array("'?'",
 		calculer_argument_precedent($idb, $col, $boucles),
 		$op,
-- 
GitLab