Jeric Rodrigo Tibayan
Jeric Rodrigo Tibayan

Reputation: 75

Why won't my foreach work?

$subSpecialties = $this->_db->get('users_subspecialties',array('user_id', '=', $this->_data->id));

print_r($subSpecialties);

foreach ($subSpecialties as $subSpecialty) {
    echo "THIS CODE IS GENERATED FROM INSIDE FOREACH";
}

The first line gets records from my users_subspecialties table

I then used print_r to check the records found.

The output is shown below:

DB Object ( [_pdo:DB:private] => PDO Object ( ) [_query:DB:private] 
=> PDOStatement Object ( [queryString] => SELECT * FROM 
users_subspecialties WHERE user_id = ? ) [_error:DB:private] => 
[_results:DB:private] => Array ( [0] => stdClass Object ( [user_id] 
=> 1 [subspecialty_id] => 2 ) [1] => stdClass Object ( [user_id] => 1 
[subspecialty_id] => 3 ) ) [_count:DB:private] => 2 )

Last line is my for-each; it should run because there are 2 records found as you can see with the print_r output and yet it won't echo the code inside.

Can someone tell me what seems to be the problem, please? Thanks in advance.

Upvotes: 0

Views: 86

Answers (2)

trixtur
trixtur

Reputation: 708

$subSpecialties = $this->_db->get('users_subspecialties',array('user_id', '=', $this->_data->id));

print_r($subSpecialties);

foreach ($subSpecialties->results() as $subSpecialty) {
    echo "THIS CODE IS GENERATED FROM INSIDE FOREACH";
}

Upvotes: 1

Suraj
Suraj

Reputation: 373

if this response is object you get like this:

foreach ($subSpecialties as $subSpecialty) {
   echo $subSpecialty->user_id;
   echo '<br/>';
   echo $subSpecialty->subspecialty_id;
}

if this response is array then

foreach ($subSpecialties as $subSpecialty) {
   echo $subSpecialty[user_id];
   echo '<br/>';
   echo $subSpecialty[subspecialty_id];
}

Upvotes: 1

Related Questions