THAM GIA tham gia với db_select ()


7

Tôi đang cố gắng tham gia trái nhưng không được.

Tôi có 2 bảng:

TABLE profile
- uid
- pid

TABLE field_data_field_naam
- entity_id
- field_naam_value

Tôi muốn chọn field_naam_valuenơi uidbằng .. và pidbằng entity_id. Truy vấn bình thường của tôi trông như thế này:

SELECT fdfm.field_naam_value, pf.uid
FROM field_data_field_naam fdfm
LEFT JOIN profile pf
ON fdfm.entity_id=pf.pid
WHERE pf.uid = 4

Khi tôi thực hiện điều này trên cơ sở dữ liệu của tôi, nó hoạt động. Sau đó, tôi có điều này:

$naam = db_select('field_data_field_naam', 'fdfm')
     ->fields('fdfm', array('field_naam_value'));
$naam->leftJoin('profile', 'pf', 'fdfm.entity_id = pf.pid');
$naam->condition('uid', 4)
     ->execute();

Và khi tôi làm như sau:

foreach ($naam as $record) {
    die;
}

không có gì xảy ra ... (anh ta không giết ứng dụng). Cũng đã cố gắng để thêm ->fetchAll()nhưng không thành công.

Câu trả lời:


12

Sử dụng mã dưới đây để tìm nạp các giá trị. Nó sẽ cung cấp cho bạn field_naam_valuedữ liệu thực địa.

$naam = db_select('profile', 'pf');
$naam->join('field_data_field_naam', 'fd', 'pf.pid = fd.entity_id');
$all_names = $naam->fields('fd', ['field_naam_value'])
  ->condition('pf.uid', 4, '=')
  ->execute()
  ->fetchAll();
foreach ($all_names as $record) {
  die;
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.