Skip to content
Extraits de code Groupes Projets
Valider 07678128 rédigé par esj's avatar esj
Parcourir les fichiers

Abstraction des clauses avec WHERE, GROUP BY et ORDER BY, sans HAVING ni LIMIT

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
}}}
parent 2531492a
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -101,7 +101,7 @@ function action_ical_dist() ...@@ -101,7 +101,7 @@ function action_ical_dist()
// http://doc.spip.org/@spip_ical_rendez_vous // http://doc.spip.org/@spip_ical_rendez_vous
function spip_ical_rendez_vous($id_utilisateur, $nom_site) 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)){ while($row=sql_fetch($result_messages)){
$id_message=$row['id_message']; $id_message=$row['id_message'];
$date_heure=$row["date_heure"]; $date_heure=$row["date_heure"];
...@@ -152,7 +152,7 @@ function spip_ical_rendez_vous($id_utilisateur, $nom_site) ...@@ -152,7 +152,7 @@ function spip_ical_rendez_vous($id_utilisateur, $nom_site)
// http://doc.spip.org/@spip_ical_taches // http://doc.spip.org/@spip_ical_taches
function spip_ical_taches($id_utilisateur, $nom_site) 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)){ while($row=sql_fetch($result_messages)){
$id_message=$row['id_message']; $id_message=$row['id_message'];
$date_heure=$row["date_heure"]; $date_heure=$row["date_heure"];
......
...@@ -77,7 +77,7 @@ function rss_suivi_messagerie($a) { ...@@ -77,7 +77,7 @@ function rss_suivi_messagerie($a) {
$rss = array(); $rss = array();
// 1. les messages // 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)) { while ($t = sql_fetch($s)) {
if ($compte++<10) { 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"); $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");
......
...@@ -328,7 +328,7 @@ function requete_auteurs($tri, $statut, $recherche=NULL) ...@@ -328,7 +328,7 @@ function requete_auteurs($tri, $statut, $recherche=NULL)
// La requete de base est tres sympa // La requete de base est tres sympa
// (pour les visiteurs, ca postule que les messages concernent des articles) // (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; return $row;
} }
......
...@@ -68,7 +68,7 @@ jQuery(function(){ ...@@ -68,7 +68,7 @@ jQuery(function(){
if ($special == "redac") { 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) { 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 style='padding-top: 6px; padding-bottom: 3px;'><b class='verdana2'>"._T("info_cours_edition")."</b></div>";
echo "\n<div class='plan-articles'>"; echo "\n<div class='plan-articles'>";
...@@ -172,7 +172,7 @@ jQuery(function(){ ...@@ -172,7 +172,7 @@ jQuery(function(){
if ($peutpub) if ($peutpub)
$result = spip_query("SELECT id_article, id_rubrique, titre, statut FROM spip_articles WHERE id_rubrique=$id_rubrique ORDER BY date DESC"); $result = spip_query("SELECT id_article, id_rubrique, titre, statut FROM spip_articles WHERE id_rubrique=$id_rubrique ORDER BY date DESC");
else 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) { if (sql_count($result)>0) {
echo "\n<div style='padding-top: 6px; padding-bottom: 3px;'><b class='verdana2'>"._T('info_articles')."</b></div>"; echo "\n<div style='padding-top: 6px; padding-bottom: 3px;'><b class='verdana2'>"._T('info_articles')."</b></div>";
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter