SELECT address
  FROM user_address
 WHERE username = '$user->name'
 ORDER BY time DESC
 LIMIT 1 

Вот SQL-запрос, который я могу понять. Как можно конвертировать его в Drupal 7 PHP? Я пытаюсь понять это в течение дня, и я пробовал разные подходы, но мне кажется, что я просто плох в этом.

0
querydb 5 Мар 2018 в 04:45

4 ответа

Лучший ответ

Вы можете использовать db_select:

$results = db_select('user_address', 'ua')
        ->fields('ua', array('address'))
        ->condition('ua.username', $user->name, '=')
        ->orderBy('ua.time', 'DESC')
        ->range(0,1)
        ->execute()
        ->fetchAll();
  var_dump($results);

В противном случае вы можете использовать {{X0} } если вы хотите написать весь SQL:

$results = db_query("SELECT address
  FROM user_address
 WHERE username = :username
 ORDER BY time DESC
 LIMIT 1 ", array(':username' => $user->name))->fetchAll();

var_dump($results);

Наконец, вы можете использовать {{X0} }:

$page = 0;
$limit = 1
$results = db_query_range("SELECT address
      FROM user_address
     WHERE username = :username
     ORDER BY time DESC", 
    $page * $limit, 
   $limit,   
   array(':username' => $user->name))
   ->fetchAll();

    var_dump($results);
0
Fky 6 Мар 2018 в 15:20
$result = $result = db_select('usr_address','u')
          ->fields('u',array('address','uid'))
          ->range(0,1)
		  ->orderby('time', 'DESC')
          ->condition('u.uid',$uid,'=')
          ->execute();

Вот как это на самом деле работает. Спасибо за ваши предложения, но в конце я сделал это. Сам. Ну вроде; D

0
querydb 6 Мар 2018 в 09:24

Для этого мы используем db_select () или db_query () - первый предпочтительнее.

 $query = db_select('user_address', 'u');

// Add condition and fields 
$query->condition('u.username', ‘james’)
 $query->fields('u’ array('u.address'));

// выполнить это

    $result = $query->execute();
   foreach ($result as $record) {
    // Do something with each $record
     }

Для более см. https: // www. drupal.org/docs/7/api/database-api/dynamic-queries/introduction-to-dynamic-queries.

обновление : см. часть условия. Также вы можете поместить это в исполняемый модуль php или область вашего сайта или через командную строку drush. Измените имя пользователя Джеймс, чтобы соответствовать вашим потребностям

0
salah-1 5 Мар 2018 в 11:15

Попробуй это:

$result = db_select('user_address', 'ua')
		->fields('ua', array('address'))
		->condition('ua.username', $user->name)
		->execute()
		->fetchAll();
0
Daniela 5 Мар 2018 в 10:19