Reputation: 3997
i have table like this
cat:
----
cat_id name
---------------
1 cat-1
2 cat-2
sub-cat:
--------
id cat_id name
-------------------------
1 1 sub-cat-1
2 1 sub-cat-2
3 2 sub-cat-3
4 2 sub-cat-4
I need output like using PHP
cat-1
sub-cat-1
sub-cat-2
cat-2
sub-cat-3
sub-cat-4
and my query is
SELECT * FROM `cat`
JOIN `sub-cat` ON cat.cat_id = sub-cat.cat_id
Upvotes: 3
Views: 1005
Reputation: 3997
I have ended up with this code in smarty
{assign var=foo value=''}
{foreach from=$blog_lists key=k item=blog }
{if $foo neq $blog ->category_id}
{$blog->category_name}<br />
{assign var=foo value=$blog->category_id}
{/if}
{$blog->subcat_name}<br />
{/foreach}
Upvotes: 1
Reputation: 2540
use below code
function tree($pid='',$new_ar=array())
{
if($pid!="")
{
$new_ar1=array();
$sel="select name from subcat where cat_id=".$pid." order by cat_id";
$mq=mysql_query($sel);
while($fe=mysql_fetch_assoc($mq))
{
array_push($new_ar1,$fe["name"]);
}
return $new_ar1;
}
else
{
$sel="select name from cat order by name";
$mq=mysql_query($sel);
while($fe=mysql_fetch_assoc($mq))
{
array_push($new_ar,$fe["name"]);
$new_ar[$fe["name"]]=array();
array_push($new_ar[$fe["name"]],tree($fe["name"],$new_ar));
}
}
//die($sel);
//echo "<pre>";
//print_r($new_ar);
//echo "<pre>";
return $new_ar;
}
call the function
tree();
Upvotes: 1
Reputation: 30488
you can use this code
$sql = mysqli_query("SELECT * FROM `cat` ");
while($row = mysqli_fetch_array($sql))
{
echo "cat ".$row['name'];
$sql1 = mysqli_query("SELECT * FROM `sub-cat` where id = ".$row['cat_id']);
while($row1 = mysqli_fetch_array($sql1))
{
echo "sub-cat ".$row1['name'];
}
}
Upvotes: 1