سؤال

I am having trouble outputting results from the following PDO query. When I try to process the resultant array I am left with an "Notice: Undefined variable: assets in..." error message.

I've tried numerous incarnations of the function and output but cannot get it to work correctly. Am I missing something here?

THE QUERY

function getAssets() {
global $dbc;
$query = "SELECT * FROM assets ORDER BY company ASC";
try {
    $statement = $dbc->prepare($query);
    $statement->execute();
    $assets = $statement->fetchAll();
    $statement->closeCursor();
    return $assets;
} catch (PDOException $e) {
    $error_message = $e->getMessage();
    display_db_error($error_message);
}
}

THE VIEW

//call function
getAssets();

//display the results
foreach($assets as $asset) {
echo '<tr><td><b>Region:</b></td><td>'.$asset['company'].'</td></tr>';
}

I've tested the array and when I use

print_r($assets);

It will print the entire array, but looping would be useful. I've also tried fetching the data as an object to no avail.

Thank you! ... and thanks for not waxing poetic about global variables :)

هل كانت مفيدة؟

المحلول

$assets is a local variable in the function. To use it outside the function, you have to return it (which you do) and assign that result to a variable in the scope of the loop:

//call function and use it's result.
$assets = getAssets();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top