Mysql Rows in HTML Option Tag

Let’s say you want to have a simple HTML <select> form as a drop down for rows in a Mysql table. This could be for things like categories, pages, games, anything you want to have in a drop down to navigate to another page or submit a form. What ever the case is, I’m going to make a simple layout for displaying rows returned from a mysql query as <option>’s in a HTML <select> or drop down.

Before we can grab anything from a mysql database we have to connect to it. Find how to connect to a mysql database here.

Let’s make our mysql query first:

<?php
// index.php
// Connect to mysql database here!
$sql = mysql_query("SELECT * FROM table1 ORDER BY id DESC") or die(mysql_error());
?>

This will grab all the rows in “table1″ ordered by the value of “id” descending. You can make this query whatever you want whether you want it ordered differently or with other requirements, etc. Now we will just make a <select> inside of a HTML form that holds each of these values as a option.

<html>
<head>
<title>Categories</title>
</head>
<body>
<form action="./index.php?do=nav" method="post">
<strong>Category:</strong> <select name="catid" style="width:250px">

Here is where we will insert our PHP code to call the returned rows of our Mysql query and display them as HTML <option> tags inside of the <select> tag.

<?php
// Display mysql rows
if(mysql_num_rows($sql) > 0){
// We have some results!
while($row = mysql_fetch_array($sql)){
echo "<option value=\"".$row["id"]."\">".$row["title"]."</option>";
}
}
else {
echo "<option value=\"0\">No categories found.</option>";
}
?>

Now we close up our HTML and see the finished result!

</select> <input type="submit" value="Go!" name="submit" />
</form>
</body>
</html>

If you have rows returned in you mysql query you will have a HTML drop down that looks like this:

Categories:

This HTML form is being submitted to “index.php?do=nav.” Of course you can point this where ever you want to do whatever you want with it, but let’s say we want to have it direct you to a category with PHP. So we are going to run a function on index.php?do=nav that will redirect the viewer to the category.

<?php
// Top of index.php
if(isset($_GET["do"]) && $_GET["do"] == "nav"){
// Form submitted
if($_POST["submit"] && ((int)$_POST["catid"])){
// Redirect them to the new page.
header("Location: ./category?id=".$_POST["catid"]."");
}
}
?>
0

Popularity: 6% [?]

0saves
If you enjoyed this post, please consider leaving a comment or subscribing to the RSS feed to have future articles delivered to your feed reader.

Filed Under: PHPTutorialsWeb Programming

Tags:

RSSComments (6)

Leave a Reply | Trackback URL

  1. Someone says:

    This thing is pretty awesome, I was doing something similar once and it ended up well… just like this!

    Thanks for sharing your tips :)

  2. Great information here! I have been looking for this everywhere, and I’m happy I finally found it! Keep up the great work.

  3. I’ll be back again, thanks for the info.

  4. SEO hosting says:

    A very interesting read and a great post alltogether. Would you mind if I posted the same article on my blog (with a reference to your website)?

  5. Hi, I just tried to email you regarding this post but cannot get in touch with you. Please email me if get a moment. Thank you.

  6. I really like your blog. Very good content. Please keep posting such great cotent.

Leave a Reply




If you want a picture to show with your comment, go get a Gravatar.

The tutorials and scripts found on bgallz.org are for training purposes only, use to your discretion.