Filip
Filip

Reputation: 165

Storing database results to a variable in PHP

I am trying to store the result from a MySQL statement for later use in PHP. I have this code which gets me the result:

// Get the categories from the db.
$categories = array();
$catSql = "SELECT id, name FROM categories";
if ($catStmt = mysqli_prepare($db, $catSql)) 
{
    $catStmt->execute();
    $result = $catStmt->get_result();
    // Fetch the result variables.
    while ($row = $result->fetch_assoc()) 
    {
        // Store the results for later use.
    }
}

So I know i will have the results in $row["id"] and $row["name"] and I want to save all of the rows so whenever i need them i can loop through them and for example echo them. I have searched for structures and arrays for keeping them in PHP but I cannot seem to find any information about that or maybe I am not searching in the right direction. Can anyone point me where i should read about this to find out how to do this efficiently and if possible post a small example?

Upvotes: 0

Views: 1686

Answers (2)

Tullio
Tullio

Reputation: 94

Use sessions:

if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

// Get the categories from the db.
$categories = array();
$catSql = "SELECT id, name FROM categories";
if ($catStmt = mysqli_prepare($db, $catSql)) 
{
    $catStmt->execute();
    $result = $catStmt->get_result();
    // Fetch the result variables.
    while ($row = $result->fetch_assoc()) 
    {
        // Store the results for later use.
        $_SESSION['category_' . $row['id']] = $row['name'];
    }
}

Then access it later from a different page

$_SESSION['session_variable_name']

You can also create an array of the information and store the entire array in a single session variable.

Just make sure you add the session_start function at the beginning of each page. The if statement prevents you from trying to start it multiple times.

Upvotes: 1

Piyush Shukla
Piyush Shukla

Reputation: 254

$categories = array();
$catSql = "SELECT id, name FROM categories";
if ($catStmt = mysqli_prepare($db, $catSql)) 
{
    $catStmt->execute();
    $result = $catStmt->get_result();
    while ($row = $result->fetch_assoc()) 
    {
        $categories[$row['id']]=$row['name'];
    }
}

And If you want the name anywhere use below :

$categories[$id]

Upvotes: 0

Related Questions