2014-10-05 40 views
0

我試圖爲Drupal 7.x創建一個模塊。在某個時候,我想使用一個SQL查詢(JOIN)。當我在MYSQL中嘗試查詢時,它起作用。但是當我想在Drupal中嘗試它時,數組是空的。JOIN在SQL中不在Drupal中工作

所以我猜sql查詢和drupal查詢之間有區別(mayby的實現是不同的)。

SQL查詢

SELECT * FROM friends 
INNER JOIN users 
ON friends.uid=users.uid 

Drupal的實施

function project_myfriends(){ 
    // Use database API to retrieve tasks 
    $query = db_select('friends', 'f'); 

    $query->join('users', 'u', 'f.uid = u.uid'); // JOIN 

    $query->fields('u', array('name')) 
      ->execute(); 
    return $query; 
    } 

    /** 
    * Implements hook_block_view(). 
    */ 
    function project_block_view($delta = ''){ 
    switch ($delta) { 
     case 'project': 
      $block['subject'] = t('My Friends'); 
      // Use our custom function to retrieve data 
      $result = project_myfriends(); 

      $items = array(); 

      var_dump($result); 
      foreach($result as $friend){ 
       $items[] = array(
        'data' => $friend->name,    
       ); 
      } 
      // No tasks 
       if (empty($items)) { 
        $block['content'] = t('No friends.'); 
       } 
       else { 
        // Pass data trough theme function 
        $block['content'] = theme('item_list', array(
         'items' => $items)); 
       } 
      } 
     return $block; 
    } 

THX提前

回答

0

你忘了取你的結果查詢:

$result = project_myfriends()->execute()->fetchAll(); 
var_dump($result);