문제

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