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