我正在尝试为Drupal 7.x创建一个模块。在某些时候,我想使用一个SQL查询(JOIN)。当我在MYSQL中尝试查询时,它可以工作。但是当我想在Drupal中尝试时,该数组为空。
因此,我猜想sql查询和drupal查询之间存在差异(可能实现方式不同)。
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
最佳答案
您忘记获取结果查询:
$result = project_myfriends()->execute()->fetchAll();
var_dump($result);
关于mysql - JOIN在SQL中不能在Drupal中工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26200319/