柳暗花明笔记

    Drupal 7 db_select 联合表查询

    所属分类:[ php&web ] 猫哲学家 发表于:2012-09-06 17:05 浏览:558

    Drupal 7 发生了很大的改变,包括数据结构和一下api,总之感觉上更加强大,开发更加方便,提供了更多扩展性很强的api使用。drupal 7 数据层比较drupal 6 而已发生了很大的改变。drupal 7 多表查询使用实例:

    /** * 只要读取一个词汇表里面的没有父类的ID,也就是最高级别的分类 */ function ditusearch_top_parent_id($vid) {     $query = db_select('taxonomy_term_hierarchy','h'); //选择表     $query->join('taxonomy_term_data','d','h.tid = d.tid'); // 联合查询     $query->addField('d', 'tid'); // 添加字段     $query->condition('h.parent',0); // 添加条件where      $query->condition('d.vid',$vid); // 再添加一个条件 and ....     $query->addTag('ditusearch_generate_path'); // 添加Tag 可选项,这个就是方便其他地方可以改变这个查询$query 比如如果添加了tag 可以使用 hook_query_alter 对其进行查询 如果你使用过views开发,views 也可以了类似的hook     $tid = $query->execute()->fetchCol();     return $tid; //返回一个数组  } /** * hook_query_alter使用, 对上面的 $query 改变 */ function ditusearch_query_alter(QueryAlterableInterface $query) {     if($query->hasTag('ditusearch_generate_path')) {         $query->addField('d','vid'); // 通过下图可以感到对查询进行了改变     } }
    标签: drupal 
    上一编文章 本地wordpress后台需要FTP密码解决办法 下一编文章 mysql if 语句
    最近文章
    发表评论