$result = db_select('taxonomy_term_data', 't'); $result->addField('t', 'tid'); $result->condition('t.vid', $vids, 'IN') ->condition(db_or()->condition('t.description', "%$keys%", 'LIKE')->condition('t.name', "%$keys%", 'LIKE')) ; $result->execute(); $found = NULL; foreach ($result as $row) { $output .= print_r($row, true); } The Devel query log shows the query properly built. I copied the query from the log into PhpMyAdmin and it gets one row. But my code shows nothing fetched. Nancy
$result doesn't contain the actual results, but rather the select class. Do something like: $data = $result->execute(); Then data will contain the actual query results object; Jamie Holly http://www.intoxination.net http://www.hollyit.net On 7/6/2012 4:43 PM, Ms. Nancy Wichmann wrote:
$result = db_select('taxonomy_term_data', 't'); $result->addField('t', 'tid'); $result->condition('t.vid', $vids, 'IN') ->condition(db_or()->condition('t.description', "%$keys%", 'LIKE')->condition('t.name', "%$keys%", 'LIKE')) ; $result->execute();
$found = NULL; foreach ($result as $row) { $output .= print_r($row, true); } The Devel query log shows the query properly built. I copied the query from the log into PhpMyAdmin and it gets one row. But my code shows nothing fetched. /*Nancy*/
You need to transition between a query builder object and the result set object. The query builder object and the result set aren't the object as your code assumes.. I'd rewrite it this way: $result = db_select('taxonomy_term_data', 't') ->addField('t', 'tid'); ->condition('t.vid', $vids, 'IN') ->condition(db_or()->condition('t.description', "%$keys%", 'LIKE') ->condition('t.name', "%$keys%", 'LIKE')) ->execute(); $found = NULL; foreach ($result as $row) { $output .= print_r($row, true); } But if you need other conditional logic around this make the last line be: $result = $result->execute(); ________________________________ From: support-bounces@drupal.org [mailto:support-bounces@drupal.org] On Behalf Of Ms. Nancy Wichmann Sent: Friday, July 06, 2012 1:44 PM To: support drupal Subject: [support] What's wrong with this query? $result = db_select('taxonomy_term_data', 't'); $result->addField('t', 'tid'); $result->condition('t.vid', $vids, 'IN') ->condition(db_or()->condition('t.description', "%$keys%", 'LIKE')->condition('t.name', "%$keys%", 'LIKE')) ; $result->execute(); $found = NULL; foreach ($result as $row) { $output .= print_r($row, true); } The Devel query log shows the query properly built. I copied the query from the log into PhpMyAdmin and it gets one row. But my code shows nothing fetched. Nancy
participants (3)
-
Jamie Holly -
Metzler, David -
Ms. Nancy Wichmann