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 cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.