You basically have two options to echo the rows in the HTML page using PHP:
Using PDO:
$stmt = $pdo->prepare('SELECT * FROM employees WHERE name = :name');
$stmt->execute(array(':name' => $name));
foreach ($stmt as $row) {
// do something with $row
}
Using mysqli:
$stmt = $dbConnection->prepare('SELECT * FROM employees WHERE name = ?');
$stmt->bind_param('s', $name);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
// do something with $row
}
So when you give $row the data of the first row, the pointer moves to the next row of the query. If you are going to need that same list of data in other part of the page, what is the proper thing to do?
- Return the pointer to the first row (how to do it?);
- Recall the query (and spend more time and resources);
- Create a array with the data (how to do it?);