DB API:如何添加嵌入式查询的结果和检索值 -- 7 领域 和 database 领域 drupal 相关 的问题

DB API: How to add the result of an embedded query and a retrieved value


1
vote

问题

中文

更有趣的db api:我正在跟踪特定节点类型的实例的视图的数量:我有一个表收集所查看的节点的 99887663 和时间戳的表项查看(在情况下有各种原因有意义)。这些节点是常规节点,也可以有评论。

我想检索由视图的数量和该节点上的注释数排序的一组节点。 (不要问为什么... :)以下代码几乎有效:

  $the_tasks = db_select('node', 'n')->range(0, 5);      $the_tasks->condition('n.type', 'whatever');      $the_tasks->join('node_comment_statistics', 'ncs', 'n.nid = ncs.nid');      $count_task_views = "(select count(*) as count from {vr_task_view_log} where tid = n.nid)";      $the_tasks->addExpression($count_task_views, 'count_task_views');      $sum_of_views_and_comments = "(count_task_views + ncs.comment_count)";     $the_tasks->addExpression($sum_of_views_and_comments, 'sum_of_views_and_comments');      $the_tasks->fields('n', array('nid', 'title'));     $the_tasks->fields('ncs', array('comment_count'));      $the_tasks->orderBy('sum_of_views_and_comments', 'desc');  $the_tasks = $the_tasks->execute(); $the_tasks = $the_tasks->fetchAll();   
像我说的那样,它几乎有效: sum_of_views_and_comments 只是只是观点的数量 - 评论的数量(正在成功检索并作为查询的一部分返回)aren'加入了。我还尝试省略"NCS" 。来自附加声明的限定符,但这没有效果。有关如何使其工作的任何建议?
英文原文

More fun with the DB API: I'm tracking the number of views of instances of a particular node type: I have a table that collects entries of the viewed node's nid and the timestamp of the view (which makes sense for a variety of reasons in the situation). These nodes, being regular nodes, can also have comments.

I want to retrieve a set of nodes that is ordered by the sum of the number of views and the number of comments on that node. (Don't ask why... :) The following code almost works:

$the_tasks = db_select('node', 'n')->range(0, 5);      $the_tasks->condition('n.type', 'whatever');      $the_tasks->join('node_comment_statistics', 'ncs', 'n.nid = ncs.nid');      $count_task_views = "(select count(*) as count from {vr_task_view_log} where tid = n.nid)";      $the_tasks->addExpression($count_task_views, 'count_task_views');      $sum_of_views_and_comments = "(count_task_views + ncs.comment_count)";     $the_tasks->addExpression($sum_of_views_and_comments, 'sum_of_views_and_comments');      $the_tasks->fields('n', array('nid', 'title'));     $the_tasks->fields('ncs', array('comment_count'));      $the_tasks->orderBy('sum_of_views_and_comments', 'desc');  $the_tasks = $the_tasks->execute(); $the_tasks = $the_tasks->fetchAll(); 

Like I said, it almost works: sum_of_views_and_comments is coming out as just the number of views -- the number of comments (which are getting successfully retrieved and returned as part of the query) aren't getting added in. I've also tried omitting the "ncs." qualifier from the addition statement, but that has no effect. Any advice on how to make it work?

     
       
       

回答列表

1
 
vote

这确实是一个数据库问题; "未知列" 问题的修复可以在 https://stackoverflow.com/questions/14879342/can-i-do-math-on-the-result-of-an-embedded-query-in-the-parent -Query (简短答案: count_task_views 的计算需要在较低级别的选择中完成)。回到drupal:我的查询用作通过 db_query 处理的纯SQL;我应该弄清楚如何通过API进行操作,但这将等一段时间...

 

This was indeed a database question; a fix for the "unknown column" problem can be found at https://stackoverflow.com/questions/14879342/can-i-do-math-on-the-result-of-an-embedded-query-in-the-parent-query (short answer: the computing of count_task_views needs to be done in a lower-level SELECT). Back to Drupal: I have my query working as pure SQL handled through db_query; I should probably figure out how to do it via the API, but that's going to wait for awhile...

 
 

相关问题

1  Drupal内容类型数据成为另一个内容类型上的字段的标签  ( Drupal content type data become label for field on another content type ) 
我正在使用drupal 7,在我的drupal网站上我创建了一个内容类型。此内容类型有2个字段:字段名称和代码。我需要根据先前内容类型的"名称" 字段的数据来创建其他内容类型,(在此内容类型)字段中。 例如: 内容类型abc:content 名称|代码 aaaaa |一种 阿巴巴| B. Acaca | C ...

0  我怎么会如何创建变量菜单链接  ( How would i go about creating variable menu links ) 
我想根据每个页面的内容和相关性在每个页面上显示不同的菜单链接。我该怎么办? ...

0  如何在Mini_Page视图中具有无限寻呼机?  ( How can i have infinite pager in mini page views ) 
我需要我的minipager去无限。我的意思是当它到达最后一个记录跳到第一个记录时。如果它到最后一个跳到第一个?我怎样才能实现这一目标。我正在使用视图来显示我的信息。但我只是希望它在特定的视图中使用它。我不希望它默认为我的所有观点。 ...

2  图像样式生成钩子  ( Image style generating hook ) 
我正在使用drupal 7.是否有一个用于从图像样式生成图像的钩子? 例如。我上传了一个图像。第一次显示图像时,Drupal会生成图像样式。我可以以某种方式挂钩这个事件吗? ...

1  在实体参考字段中显示语言  ( Display language in entity reference field ) 
我正在运行一个多语言网站,我使用实体引用有一些内容类型。现在,问题是,当我添加内容时,如果我有两个具有相同名称但不同语言的两个内容(例如,产品名称),我无法知道我在实体参考字段中选择哪一个。 所以我希望能够在实体参考选择框中显示语言。这样的东西: Lorem Ipsum (EN) Lorem Ipsum (IT)...

2  作者只访问Tab Node的选项卡菜单  ( Author only access to tab menu of node ) 
我在节点页面中创建了一个菜单选项卡,以使用我的自定义模块显示文章的统计信息。 我已经实现了hook_menu(),如下所示: function mymodule_menu() { $items = array(); $items['node/%node/menu_title'] = array...

1  根据基于领域的分类法列出节点  ( List nodes from a taxonomy based on a field ) 
我正在寻找最"drupal" 的方法来创建一个包含一个列表的视图/块(不确定),其中包含顶级项目的列表是来自某个词汇的父分类(共有4个父母)然后嵌套在每个分类系统下,这是一个有一定字段的第5个产品设置为true。 基本上是一个"特色产品" -Sque块,将有4个标签。 ...

0  如何在db_select下订购main后orderby table  ( How to orderby joined table after ordered main in db select ) 
我有3个连接表 - 查询在主表上搜索一些字符串,然后通过entity_id加入其他字符串。我想订购首先第二秒第三表的记录结果,但现在没有成功。此时,我只有仅用于主表。 我的查询: $query = db_select('field_data_field_cg_w', 'w'); $query -> join('...

2  多个ajax在一个表单上“添加更多”按钮,default_value从db  ( Multiple ajax add more buttons on one form with default value from db ) 
我有一个包含多值字符串字段的自定义内容类型(一个用于小学教育,一个用于中学教育,一个用于高等教育)。 为了让用户输入每个字段的多个值,我有一个ajax回调,它根据示例模块(带非常小修改,允许多个这样的字段)。 添加和删除新内容的字段良好。但是,下一步是允许用户编辑这样的节点。当我为字段指定默认值(以及每个字段的数字条...

1  在表单元素中添加更多选项  ( Add more option in form element ) 
我正在使用WebForm模块,我只为用户提供了一个文本区域,以进入他的选择,但我希望我的表单元素中的"添加更多" 按钮,以便我的用户也可以进入他的第二选择。我想知道我可以做些什么来实现描述的动作? ...

1  从主题文件夹中删除的favicon显示出[关闭]  ( Deleted favicon from themes folder is showing up ) 
此问题似乎在帮助中心中定义的范围内涉及Drupal。。 想要改进这个问题?更新问题,所以它是关于drupal答案的主题。 ...

0  Drupal7 - 如何在全视图中显示摘要和正文? [复制]  ( Drupal7 how to display both summary and body on full view ) 
这个问题已经在这里有答案: 如何显示摘要(在完整内容视图中,在身体上缩短剪报 (6个答案) ...

0  使用Field_atth_Update更新时防止缓存  ( Prevent cache when updating with field attach update ) 
我有缓存有问题。我已经设置了一个URL的菜单钩子,如 /user/USER_ID/some_info ,它因为我设置了我的菜单挂钩而自动接收整个用户对象(见下文)。 我面临的问题是,我在drupal(包括entitycache)中启用了所有缓存模块,而 $usr 变量从缓存传递。如此自然,如果我更新一个字段并使用 f...

1  如何在不清除缓存和刷新页面的情况下显示My Model的输出?  ( How to display the output of my module without clearing cache and refresh page ) 
我创建了一个非常简单的模块,它基于用户输入生成标签云;你可以在这里看到代码。 // wow.module function wow_menu() { $items = array(); $items['wall/of/words'] = array( 'title' => 'Wal...

3  退出视图时,模态我返回了JSON [复制]  ( When exiting views modal i am returned json ) 
这个问题已经在这里有答案: 无法编辑我的观点..我得到了一个JSON字符串? (5个答案) ...

0  预处理中的HTML特殊字符  ( Html special characters in preprocess ) 
我正在尝试将子弹添加到 _preprocess_node() 中的字符串中,并遇到问题。 我正在使用drupal 7。 我的代码如此: if($node->type == 'contact_page'){ $vars['content']['field_fax']['#title'] = t("F &#8...

0  为什么文件扩展验证程序不起作用?  ( Why file extension validator does not work ) 
根据doc评论创建它: http:/ /api.drupal.org/api/drupal/includes%21file.inc/function/file_validate_extensions/7 我的上传字段定义: $form['xml'] = array( #'#title' =...

1  从现场类型无线电(Drupal 7)中删除包装div  ( Remove wrapping div from field type radios drupal 7 ) 
我正在尝试在主题形式输出上的手,并陷入无线电。我试图删除包裹一组无线电的div, div.form-item > div.form-radios > div.form-type-radio > input[type="radio"]+label ^^^^^^^^^^^^^^^ <-...

2  常量联系模块在每个用户配置文件页面上放置订阅复选框  ( Constant contact module puts subscribe checkbox on every user profile page ) 
所以,我们正在使用恒定的联系模块,允许用户在我们的网站上注册新闻稿。在管理页面中,模块提供了一个"订阅方法" 选项,让您指定用户如何选择到新闻稿功能。我们正在使用"复选框" 。 这一切都很好,除了我们还使用用户配置文件,具有多个类别。当用户去编辑他或她的帐户详细信息时,"订阅" 复选框显示在每个单一类别页面上,即使它...

3  多个选择listbox视图过滤器drupal 7  ( Multiple select listbox views filter drupal 7 ) 
我有一个与某些字段的视图,例如一个字段是一个字段是产品名称。我想制作一个多选择的列表框,允许从视图中的产品列表中选择其中3个,但却无法弄清楚。 谢谢, 账单 ...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.