Show selected option value from Array & MySQL DB using PHP
In this tutorial, you will learn how to create an array of categories, display the values inside HTML select box and have selected options pre-defined with PHP and also I will show you how to get the selected options from a database using the ID of the record.
Full project code:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Select Option Dropdown</title> </head> <body> <style> body { font-size: 2em; } .container { display: grid; grid-template-rows: repeat(2, 1fr); grid-template-columns: repeat(2, 1fr); grid-gap: 6rem; padding: 5rem; border: 1px solid #ccc; justify-content: space-evenly; } select { font-size: 1em; } </style> <div class="container"> <div>Selected From Array</div> <div>Selected From DB Record</div> <div> <?php $selected = "Adult"; $options = array('Comedy', 'Adventure', 'Drama', 'Crime', 'Adult', 'Horror'); echo "<select>"; foreach($options as $option){ if($selected == $option) { echo "<option selected='selected' value='$option'>$option</option>"; } else { echo "<option value='$option'>$option</option>"; } } echo "</select>"; ?> </div> <div> <?php define('DB_SERVER', 'localhost'); define('DB_USERNAME', 'root'); define('DB_PASSWORD', 'password'); define('DB_NAME', 'phplearning'); $link = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME); if($link === false){ die("Error: Could not connect." . mysqli_connect_error()); } if(isset($_GET['category'])){ $categoryName = $_GET['category']; $sql = "SELECT * FROM categories WHERE id = $categoryName"; if($result = mysqli_query($link, $sql)) { if(mysqli_num_rows($result) > 0) { while($row = mysqli_fetch_array($result)){ $dbselected = $row['category']; } // Function frees the memory associated with the result mysqli_free_result($result); } else { echo "Something went wrong..."; } } else { echo "ERROR: Could not execute $sql." . mysql_error($link); } } $options = array('Comedy', 'Adventure', 'Drama', 'Crime', 'Adult', 'Horror'); echo "<select>"; foreach($options as $option){ if($dbselected == $option) { echo "<option selected='selected' value='$option'>$option</option>"; } else { echo "<option value='$option'>$option</option>"; } } echo "</select>"; ?> </div> </div> </body> </html>
Thank you for reading this article. Please consider subscribing to my YouTube Channel.
Hello
hi š
youre the man!!!
šš
Sir,
I have a website works in local host.
I have some additional features like search, filter option according to city state basis.
if you are interested to do kindly let me know that i send you the files to update.
You have created those features and you wish to publish them on my blog or you want me to make tutorials on how to do them?
Nice one Raddy!
Editor *
–select–
<option value="”>
hi im acquiring data from db using function , but when i try to edit it , it doesnt show the already selected value, please help
Are you sure you are getting the data you need from the database? Strange that the options are not there. Double-check to see if you have any typos
How to use select option (insert, update)
tbCustomers(idCustomer,NameCustomer,phoneCustomer,idState,idCity)
tbStates (idState, nameState)
tbCities(idCity,nameCity,idState)
I’ve done several searches on the internet, this part seems complicated in php. because finding help like this is difficult.
Sometimes is hard to find answers when you have a very specific question. Saying this I am not sure if I understand your question well. Can you give me more details? Maybe a short explanation of what you are trying to achieve.
Construct the select using data from two foreign key tables
1. First the customer table – customer data:
(Name, Address, State, City)
2. State table, where the customer resides;
3. City table, your city;