From 0767812841c2de4e431283f01a57093da50eb65d Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Thu, 4 Oct 2007 09:45:26 +0000
Subject: [PATCH] Abstraction des clauses avec WHERE, GROUP BY et ORDER BY,
 sans HAVING ni LIMIT
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Dépot obtenu par:

{{{
for i in $(grep -l 'spip_query..SELECT.*FROM.*WHERE[^HYL]*BY[^HYL]*BY[^GL]*; *$' [a-i]*/*php|grep -v inc/meta.php)
do
echo $i
sed 's/spip_query..SELECT *\(.*[^ ]\) *FROM *\(.*[^ ]\) *WHERE *\([^HYL]*\)GROUP BY\([^HYL]*\)ORDER BY\([^GL]*;\)$/sql_select("\1", "\2", "\3", "\4", "\5/;s/ "" *\.//;s/ch(sql_select\(.*\));/sel\1;/' $i > x
mv x $i
done
}}}
---
 ecrire/action/ical.php         | 4 ++--
 ecrire/action/rss.php          | 2 +-
 ecrire/exec/auteurs.php        | 2 +-
 ecrire/exec/brouteur_frame.php | 4 ++--
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/ecrire/action/ical.php b/ecrire/action/ical.php
index b2e21b5d8d..7936001247 100644
--- a/ecrire/action/ical.php
+++ b/ecrire/action/ical.php
@@ -101,7 +101,7 @@ function action_ical_dist()
 // http://doc.spip.org/@spip_ical_rendez_vous
 function spip_ical_rendez_vous($id_utilisateur, $nom_site)
 {
-	$result_messages=spip_query("SELECT messages.* FROM spip_messages AS messages, spip_auteurs_messages AS lien WHERE ((lien.id_auteur=$id_utilisateur AND lien.id_message=messages.id_message) OR messages.type='affich') AND messages.rv='oui' AND messages.statut='publie' GROUP BY messages.id_message ORDER BY messages.date_heure");
+	$result_messages=sql_select("messages.*", "spip_messages AS messages, spip_auteurs_messages AS lien", "((lien.id_auteur=$id_utilisateur AND lien.id_message=messages.id_message) OR messages.type='affich') AND messages.rv='oui' AND messages.statut='publie' ", " messages.id_message ", " messages.date_heure");
 	while($row=sql_fetch($result_messages)){
 		$id_message=$row['id_message'];
 		$date_heure=$row["date_heure"];
@@ -152,7 +152,7 @@ function spip_ical_rendez_vous($id_utilisateur, $nom_site)
 // http://doc.spip.org/@spip_ical_taches
 function spip_ical_taches($id_utilisateur, $nom_site)
 {
-	$result_messages=spip_query("SELECT messages.* FROM spip_messages AS messages, spip_auteurs_messages AS lien WHERE lien.id_auteur=$id_utilisateur AND lien.id_message=messages.id_message AND messages.type='pb' AND messages.rv!='oui' AND messages.statut='publie' GROUP BY messages.id_message ORDER BY messages.date_heure");
+	$result_messages=sql_select("messages.*", "spip_messages AS messages, spip_auteurs_messages AS lien", "lien.id_auteur=$id_utilisateur AND lien.id_message=messages.id_message AND messages.type='pb' AND messages.rv!='oui' AND messages.statut='publie' ", " messages.id_message ", " messages.date_heure");
 	while($row=sql_fetch($result_messages)){
 		$id_message=$row['id_message'];
 		$date_heure=$row["date_heure"];
diff --git a/ecrire/action/rss.php b/ecrire/action/rss.php
index 141d5268be..31a0be0dc3 100644
--- a/ecrire/action/rss.php
+++ b/ecrire/action/rss.php
@@ -77,7 +77,7 @@ function rss_suivi_messagerie($a) {
 	$rss = array();
 
 	// 1. les messages
-	$s = spip_query("SELECT * FROM spip_messages AS messages, spip_auteurs_messages AS lien WHERE lien.id_auteur=".$a['id_auteur']." AND lien.id_message=messages.id_message GROUP BY messages.id_message ORDER BY messages.date_heure DESC");
+	$s = sql_select("*", "spip_messages AS messages, spip_auteurs_messages AS lien", "lien.id_auteur=".$a['id_auteur']." AND lien.id_message=messages.id_message ", " messages.id_message ", " messages.date_heure DESC");
 	while ($t = sql_fetch($s)) {
 		if ($compte++<10) {
 			$auteur = sql_fetsel("auteurs.nom AS nom, auteurs.email AS email", "spip_auteurs AS auteurs, spip_auteurs_messages AS lien", "lien.id_message=".$t['id_message']." AND lien.id_auteur!=".$t['id_auteur']." AND lien.id_auteur = auteurs.id_auteur");
diff --git a/ecrire/exec/auteurs.php b/ecrire/exec/auteurs.php
index 14715cd114..8ba4280f20 100644
--- a/ecrire/exec/auteurs.php
+++ b/ecrire/exec/auteurs.php
@@ -328,7 +328,7 @@ function requete_auteurs($tri, $statut, $recherche=NULL)
 	// La requete de base est tres sympa
 	// (pour les visiteurs, ca postule que les messages concernent des articles)
 	
-	 $row = spip_query("SELECT							aut.id_auteur AS id_auteur,							aut.statut AS statut,								aut.nom_site AS site, aut.nom AS nom,								UPPER(aut.nom) AS unom,							count(lien.id_article) as compteur							$sql_sel									FROM spip_auteurs as aut " . ($visit ?		 			"LEFT JOIN spip_forum AS lien ON aut.id_auteur=lien.id_auteur " :		("LEFT JOIN spip_auteurs_articles AS lien ON aut.id_auteur=lien.id_auteur	 LEFT JOIN spip_articles AS art ON (lien.id_article = art.id_article)")) .	" WHERE $sql_visible GROUP BY aut.statut, aut.nom_site, aut.nom, aut.id_auteur ORDER BY $sql_order");
+	 $row = sql_select("							aut.id_auteur AS id_auteur,							aut.statut AS statut,								aut.nom_site AS site, aut.nom AS nom,								UPPER(aut.nom) AS unom,							count(lien.id_article) as compteur							$sql_sel									", "spip_auteurs as aut " . ($visit ?		 			"LEFT JOIN spip_forum AS lien ON aut.id_auteur=lien.id_auteur " :		("LEFT JOIN spip_auteurs_articles AS lien ON aut.id_auteur=lien.id_auteur	 LEFT JOIN spip_articles AS art ON (lien.id_article = art.id_article)")) .	"", "$sql_visible ", " aut.statut, aut.nom_site, aut.nom, aut.id_auteur ", " $sql_order");
 	 return $row;
 }
 
diff --git a/ecrire/exec/brouteur_frame.php b/ecrire/exec/brouteur_frame.php
index 2bcb9aeb8f..b63beed6e2 100644
--- a/ecrire/exec/brouteur_frame.php
+++ b/ecrire/exec/brouteur_frame.php
@@ -68,7 +68,7 @@ jQuery(function(){
 
 
 	if ($special == "redac") {
-		$result=spip_query("SELECT articles.id_article, articles.id_rubrique, articles.titre, articles.statut FROM spip_articles AS articles LEFT JOIN spip_auteurs_articles AS lien USING (id_article) WHERE articles.statut = 'prepa' AND lien.id_auteur = $connect_id_auteur GROUP BY id_article ORDER BY articles.date DESC");
+		$result=sql_select("articles.id_article, articles.id_rubrique, articles.titre, articles.statut", "spip_articles AS articles LEFT JOIN spip_auteurs_articles AS lien USING (id_article)", "articles.statut = 'prepa' AND lien.id_auteur = $connect_id_auteur ", " id_article ", " articles.date DESC");
 		if (sql_count($result)>0) {
 			echo "\n<div style='padding-top: 6px; padding-bottom: 3px;'><b class='verdana2'>"._T("info_cours_edition")."</b></div>";
 			echo "\n<div class='plan-articles'>";
@@ -172,7 +172,7 @@ jQuery(function(){
 			if ($peutpub)
 				$result = spip_query("SELECT id_article, id_rubrique, titre, statut FROM spip_articles WHERE id_rubrique=$id_rubrique ORDER BY date DESC");
 			else 
-				$result = spip_query("SELECT articles.id_article, articles.id_rubrique, articles.titre, articles.statut FROM spip_articles AS articles, spip_auteurs_articles AS lien WHERE articles.id_rubrique=$id_rubrique AND (articles.statut = 'publie' OR articles.statut = 'prop' OR (articles.statut = 'prepa' AND articles.id_article = lien.id_article AND lien.id_auteur = $connect_id_auteur)) GROUP BY id_article ORDER BY articles.date DESC");
+				$result = sql_select("articles.id_article, articles.id_rubrique, articles.titre, articles.statut", "spip_articles AS articles, spip_auteurs_articles AS lien", "articles.id_rubrique=$id_rubrique AND (articles.statut = 'publie' OR articles.statut = 'prop' OR (articles.statut = 'prepa' AND articles.id_article = lien.id_article AND lien.id_auteur = $connect_id_auteur)) ", " id_article ", " articles.date DESC");
 
 			if (sql_count($result)>0) {
 				echo "\n<div style='padding-top: 6px; padding-bottom: 3px;'><b class='verdana2'>"._T('info_articles')."</b></div>";
-- 
GitLab