Roelof Coertze
Roelof Coertze

Reputation: 586

Drop-down list in HTML with options based on php rows

I want to make a dropdown list based on options that are obtained from an MySQL database. At this moment my code looks like this:

<?php
if ($resultCheck12 > 0) {
    while ($row = mysqli_fetch_assoc($result12)) { ?>
        <select name="storage_location[]" required>
            <option value=""></option>
            <option value="<?php echo $row['id']; ?>"><?php echo $row['storage_name']; ?></option>
        </select>
<?php } } ?> 

And this code should produce a result that looks like this if it was unsystematically coded:

<select name="sample_group[]" class="sample_group" required>
    <option value=""></option>
    <option value="water">Water</option>
    <option value="pharmaceutical">Pharmaceutical</option>
    <option value="food">Food</option>
    <option value="food">Swabs</option>
    <option value="custom">Custom</option>
</select>   

However the results produce something like this:

<select name="sample_group[]" class="sample_group" required>
    <option value=""></option>
    <option value="water">Water</option>
</select>
<select name="sample_group[]" class="sample_group" required>
    <option value=""></option>
    <option value="pharmaceutical">Pharmaceutical</option>
</select>
<select name="sample_group[]" class="sample_group" required>
    <option value=""></option>
    <option value="food">Food</option>
</select>
<select name="sample_group[]" class="sample_group" required>
    <option value=""></option>
    <option value="swabs">Swabs</option>
</select>
<select name="sample_group[]" class="sample_group" required>
    <option value=""></option>
    <option value="custom">Custom</option>
</select>

Instead of producing a single dropdown list it makes one for each variable from the MySQL database.

Any ideas how to resolve this issue?

Upvotes: 1

Views: 532

Answers (2)

Rosh
Rosh

Reputation: 491

    <?php
       if ($resultCheck12 > 0) { ?>
          <select name="storage_location[]" required>
            <option value=""></option>
            <?php while ($row = mysqli_fetch_assoc($result12)) { ?>
            <option value="<?php echo $row['id']; ?>"><?php echo $row['storage_name']; ?></option>
          <?php }  ?> 
        </select>
     <?php }  ?> 

The select tag should be outside the while loop

Upvotes: 1

Kamal Paliwal
Kamal Paliwal

Reputation: 1301

You are using select tag inside while loop that's why it is repeating it multiple times.

<?php if ($resultCheck12 > 0) { ?>
    <select name="storage_location[]" required>
        <option value=""></option>
        <?php while ($row = mysqli_fetch_assoc($result12)) { ?>
            <option value="<?php echo $row['id']; ?>"><?php echo $row['storage_name']; ?></option>
        <?php } ?>
    </select>    
<?php } ?> 

Upvotes: 0

Related Questions