Doing a loop through on a MySQL query is super useful and common. It allows you to make tables, rows and output data in a controlled manner without doing many connections.
PHP PDO with a prepared statement gives you better security against injections.
Assuming you already have your MySQL PDO connection details set like
$db = new PDO('mysql:host=localhost;dbname=DATABASENAME;charset=utf8mb4', 'USERNAME', 'PASSWORD');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);Here is how to do a loop on a PDO MySQL select query:
<?php
$location_type = 'Beach';
$statement = $db->prepare("SELECT `location`, `type` FROM `locations` WHERE `type` = :location_type");
$statement->execute(array(':location_type' => $location_type));
while ($row = $statement->fetch(PDO::FETCH_ASSOC)) {
$location = $row['location'];
$type = $row['type'];
echo "$location has the type $type<br>";
}Without a prepared statement query
<?php
$statement = $db->prepare("SELECT `location`, `type` FROM `locations`");
$statement->execute(array());
while ($row = $statement->fetch(PDO::FETCH_ASSOC)) {
$location = $row['location'];
$type = $row['type'];
echo "$location has the type $type<br>";
}This will loop through each of the selected rows and output the `location` and the `type` as a new line due to the break tag (<br>).