Sziasztok!
Van egy D6-os modul amiben van egy ilyen lekérdezés:
$header = array(
array('data' => t('Symbol'), 'field' => 'symbol'),
array('data' => t('Bid'), 'field' => 'bid', 'class' => 'rightcell'),
array('data' => t('Ask'), 'field' => 'ask', 'class' => 'rightcell'),
);
$result = db_query('SELECT * FROM {gft_cache} WHERE forexid IN (%s)'.tablesort_sql($header),variable_get('gft_api_forexids', '1,2,3,4'));
Ami egy ilyen query-t generál:
SELECT * FROM gft_cache WHERE forexid IN (47,116,4,34,3,35,1,54908,67054) ORDER BY symbol ASC
Megpróbáltam a lekérdezést átírni D7-re:
$header = array(
array(
'data' => t('Symbol'),
'field' => 'symbol',
),
array(
'data' => t('Bid'),
'field' => 'bid',
'class' => 'rightcell',
),
array(
'data' => t('Ask'),
'field' => 'ask',
'class' => 'rightcell',
),
);
$select = db_select('gft_cache','gc')->extend('TableSort');
$result = $select->fields()->condition('forexid', array(variable_get('gft_api_forexids', '1,2,3,4')),'in')->orderByHeader($header)->execute();
Ami egy ilyen kimenetet generál:
SELECT .* FROM {gft_cache} gc {} WHERE (forexid IN (:db_condition_placeholder_0)) ORDER BY symbol ASC
Hogyan kéne ezt a lekérdezést helyrehozni? Én már nem találok hozzá több leírást amiből kibogozhatnám. :S