2017-01-22 6 views
0

Я создал следующий код в views_php:Использование ENTITY_ID в db_query в views_php (Drupal 7)

$userseeking = db_query("SELECT field_seeking_tid FROM {field_data_field_seeking} WHERE entity_id = 6")->fetchAll(PDO::FETCH_ASSOC); 
$userseekingcount = count($userseeking); 
return $userseekingcount 

В приведенном выше примере, я использую конкретное значение '6' для ENTITY_ID. Я получаю ожидаемый результат от этого запроса.

Однако entity_id должен быть переменной, зависящей от идентификатора профиля входа в систему (подключенного к их идентификатору пользователя).

Поэтому я ввожу 3 строки для извлечения PID ($ currentpid) от текущего пользователя. Я подтвердил, что эти 3 строки возвращают значение $ currentpid 6. Когда я исправляю db_query для выбора значений, где entity_id = $ currentpid, появляется отказ, хотя они должны давать тот же результат - см. Код ниже:

global $user; 
$currentuser = $user->uid; 
$currentpid = db_query('SELECT pid FROM {profile} WHERE uid = ' . $currentuser . ' limit 1')->fetchField(); 

$userseeking = db_query("SELECT field_seeking_tid FROM {field_data_field_seeking} WHERE entity_id = ' . $currentpid . '")->fetchAll(PDO::FETCH_ASSOC); 
$userseekingcount = count($userseeking); 
return $userseekingcount 

Я злоупотребляю ссылкой на объект entity_id в этом запросе?

Благодарим за помощь!

PS Это может быть не самый чистый код, поэтому я приношу свои извинения в продвинутом состоянии! :)

ответ

0

Оказалось, что в приведенном выше примере было использовано неправильное использование синтаксиса. В частности, это было мое использование "и" при создании $ userseeking

Надеюсь, другие могут узнать из моей ошибки новичка :)

Исправленный код является:.

global $user; 
$currentuser = $user->uid; 
$currentpid = db_query('SELECT pid FROM {profile} WHERE uid = ' . $currentuser . ' limit 1')->fetchField(); 

$userseeking = db_query('SELECT field_seeking_tid FROM {field_data_field_seeking} WHERE entity_id = ' . $currentpid . '')->fetchAll(PDO::FETCH_ASSOC); 
$userseekingcount = count($userseeking); 
return $userseekingcount 

 Смежные вопросы

  • Нет связанных вопросов^_^