当我为数据库函数运行cron时,它返回相同的值

时间:2015-02-25 09:17:22

标签: php drupal drupal-7 cron drupal-modules

这是cron代码:

function blablabla_cron() {
  $i=1; 
  do {
    $gad = blablabla();
    $i++;
  }while ($i<6);
}

此代码返回的值始终与表的值相同。

这是blablabla函数的代码

function blablabla() {
  // Begin building the query.
  $query = db_select('watchdog', 'th')
    ->extend('PagerDefault')
    ->orderBy('wid')
    ->fields('th')
    ->limit(8)

  // Fetch the result set.
  $result = $query->execute();

  // Loop through each item and add to the $rows array.
  foreach ($result as $row) {
    $Severities = unserialize($row->variables);
      if($Severities['%type']) {
        $rows[] = array(
          $row -> wid,
          $Severities['%type'],
        );
      }
  }

  // Headers for theme_table().
  $header = array('ID', 'Message');

  // Format output.
  $output = theme('table', array('header' => $header, 'rows' => $rows)) . theme('pager');
  return $output;
}

当cron运行时我必须按顺序执行它会显示表的所有值吗?

1 个答案:

答案 0 :(得分:1)

将$ i传递给blabla($ i),然后在该函数中使用它来查询查询返回的不同行范围:

而不是:

->limit(8);

使用:

->range(($i-1)*8,8);

那就是......如果我在这里想出你想要达到的目的。

https://api.drupal.org/comment/13489#comment-13489