Hi there,
I'm building a form using the <select> tags to display a group of categories and sub categories like so:
Parent
--->Sub cat
--------> Sub sub cat
Parent 2
---->Another sub cat
I've written the following script, but it seems inefficient to keep writing it out multiple times for each sub category but I can't figure out how I'd write a loop to do this automatically... See what you think:
<?php
//Retrieve parent categories
$query_0 = "SELECT id,name,parent FROM categories WHERE parent =0 ORDER BY name ";
$result_0 = mysql_query($query_0) or die ("Couldn’t execute query.");
while ($row_0 = mysql_fetch_array($result_0,MYSQL_ASSOC))
{
extract ($row_0);
echo "<option value='$id'>$name</option>";
//Retrieve first sub categories
$query_1 = "SELECT id,name,parent FROM categories WHERE parent=$id ORDER BY name";
$result_1 = mysql_query($query_1) or die ("Couldn’t execute query.");
while ($row_1 = mysql_fetch_array($result_1,MYSQL_ASSOC))
{
extract ($row_1);
echo "<option value='$id'>----> $name</option>";
//Retrieve second sub categories
$query_2 = "SELECT id,name,parent FROM categories WHERE parent=$id ORDER BY name";
$result_2 = mysql_query($query_2) or die ("Couldn’t execute query.");
while ($row_2 = mysql_fetch_array($result_2,MYSQL_ASSOC))
{
extract ($row_2);
echo "<option value='$id'>--------> $name</option>";
//Retrieve third sub categories
$query_3 = "SELECT id,name,parent FROM categories WHERE parent=$id ORDER BY name";
$result_3 = mysql_query($query_3) or die ("Couldn’t execute query.");
while ($row_3 = mysql_fetch_array($result_3,MYSQL_ASSOC))
{
extract ($row_3);
echo "<option value='$id'>------------> $name</option>";
}
}
}
}
?>
Thanks for any help you can offer, if you need more info please let me know.