Slava Basat
Slava Basat

Reputation: 43

How can I create <select> optgroups in html using data from mysql?

SO I have about 60 fields of data queried from a database. They look like this in page source:

    <option>Genesis</option>
    <option>Exodus</option>
    <option>Leviticus</option>

For example I wanna have it so that 1-20 are a certain optgroup and then 20-60 is another. Could I do it using my format of options of would they have to be numbered like this:

<option value="1">Genesis</option>
<option value="2">Exodus</option>
<option value="3">Leviticus</option>

This is for my php class, but i dont think php is involved in making optgroups here, or is it? Thank you hope you understand my question. Hoping for help.

I pull the data from mysql using this :

//Query the database for the results we want
$query = $mysqli->query("select distinct bname as Name from kjv"); ?>

And then output it in the select dropdown box using this:

    <select>
    <?php while($option = $query->fetch_object()){ ?>
        <option><?php echo $option->Name; ?></option>
    <?php } ?>
</select>

Upvotes: 0

Views: 1676

Answers (2)

MD SHAHIDUL ISLAM
MD SHAHIDUL ISLAM

Reputation: 14523

Use:

<select>
    <?php 
    $i=1;
    while($option = $query->fetch_object()){ 
        if($i%10==1) echo "<optgroup label='Option Group'>";
        echo "<option value='$i'>".$option->Name."</option>";
            $i++;
        if($i%10==1) echo "</optgroup>";
    } 
    ?>
</select>

Upvotes: 2

Osama Jetawe
Osama Jetawe

Reputation: 2705

Using while loop :

$query = "SELECT * FROM example"; 

$result = mysql_query($query) or die(mysql_error());

foreach ($row = mysql_fetch_array($result)) {

 echo "'<option value={$row['id']}>{$row['value']}</option>'";

}

Upvotes: 0

Related Questions