0

I'm trying to run the following query.

SELECT floormap_counter_expected.counter_name, tls_connect_agent_counters.counter_stage,tls_connect_agent_counters.applicant_gwf, tls_connect_agent_counters.counter_ip, floormap_counter_expected.expected FROM tls_connect_agent_counters INNER JOIN floormap_counter_expected ON floormap_counter_expected.counter_name = tls_connect_agent_counters.counter_name;

When executed via the command line, MYSQL returns the information I need.

When I try the following code, I get an error saying that $center_counters is not set.

$get_counter_info = db_select('tls_connect_agent_counters', 't');
$get_counter_info->fields('t', array('counter_stage', 'applicant_gwf', 'counter_ip'));
$get_counter_info->fields('n', array('expected'));
$get_counter_info->join('floormap_counter_expected', 'n', 't.counter_name = n.counter_name');
$get_counter_info->execute()->fetchAll();
if (isset($get_counter_info)) {
  foreach ($get_counter_info as $results) {
    echo "Rest";
    $center_counters[$results->counter_name]['stage'] = $results->counter_stage;
    $center_counters[$results->counter_name]['counter_ip'] = $results->counter_ip;
    $i++;
  }
}
return $center_counters;

The same happens with the following code.

$counters_query = "SELECT floormap_counter_expected.counter_name, tls_connect_agent_counters.counter_stage,";
$counters_query .= "tls_connect_agent_counters.applicant_gwf, tls_connect_agent_counters.counter_ip, ";
$counters_query .= "floormap_counter_expected.expected FROM tls_connect_agent_counters INNER JOIN ";
$counters_query .= "floormap_counter_expected ON floormap_counter_expected.counter_name = tls_connect_agent_counters.counter_name";
$get_counter_info = db_query($counters_query);
$get_counter_info->fetchAll();
if (isset($get_counter_info)) {
  foreach ($get_counter_info as $results) {
    echo "Rest";
    $center_counters[$results->counter_name]['stage'] = $results->counter_stage;
    $center_counters[$results->counter_name]['counter_ip'] = $results->counter_ip;
    $i++;
  }
}
return $center_counters;

I tried wrapping the code with try{} catch(Exception $e) {echo $e-getMessage()}, but nothing is printed.

I assume the query is running without error because nothing is "caught".

I was thinking that maybe I'm just calling the information wrong in my foreach loop. Maybe I should identify the table name as well when I call the field name. I don't think that is the case as nothing is printed when I try to echo strings out of foreach.

0

1 Answer 1

0
$get_counter_info->execute()->fetchAll();

will execute the query...but what are you doing with the results, exactly? At the moment you're discarding them, instead you need to assign them to a variable.

$results = $get_counter_info->execute()->fetchAll();
foreach ($results as $result) {
  ...
}

Or at the very least actually use the return value from the execution:

foreach ($get_counter_info->execute()->fetchAll() as $result) {
  ...
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.