Search code examples
phpmysqldropdown

How make dropdown using mysql database, when structure like this?


How to make dropdown using database sql? when like this structure. im confuse how to get dropdown using this structure

<?php
$sqlo = "SELECT * from outlet";
$queryo = $dbh -> prepare($sqlo);
$queryo->execute();
$results=$queryo->fetchAll(PDO::FETCH_OBJ);{
?>
<div class="col-md-1">
    <div class="position-relative form-group"><label for="outlet"> Kategori <span style="color:red"> *</span></label>
        <select name="outlet" id="outlet" class="form-control">

            <option value="<?php htmlentities($result->nameoutlet); ?>"><?php htmlentities($result->nameoutlet); }?></option>
        </select>
    </div>
</div>

dbh has declare in config.php, in config just connection into loacalhost.

<?php
// DB credentials.
define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PASS','');
define('DB_NAME','ereport');
// Establish database connection.
try
{
    $dbh = new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME,DB_USER, DB_PASS,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
}
catch (PDOException $e)
{
    exit("Error: " . $e->getMessage());
}
?>

Solution

  • I assume you're trying to use the DB to fill a dropdown menu? It's important to know the difference between a frontend language and a backend language. This might help you.

    As for your problem, you'll want to use a foreach loop.

        <?php
    
        $options = '';
        foreach ($results as $result) {
            $safe_value = htmlentities($result->nameoutlet);
            $options .= "<option value='$safe_value'>$safe_value</option>";
        }
    
        ?>
    
        <div class="col-md-1">
            <div class="position-relative form-group">
                <label for="outlet"> Kategori <span style="color:red"> *</span></label>
                <select name="outlet" id="outlet" class="form-control">
                    <?= $options ?>
                </select>
            </div>
        </div>