㈠ thinkphp 获取一级分类(包括2级分类)下所有商品
你可以这样
$str='selectidfromtp_order_catwhereparentidin(1,5,6)';//获取所有的1,5,6的所有下级分类
$need_list=D('tp_order_cat')->where('parentidin(1,5,6)')->select();//获取到的
$need_id_str='';//获取需要的子类id
foreach($need_listas$val){
$need_id[]=$val['id'];
}
$need_id_str=join(',',$need_id);
$where="catidin($need_id_str)";
$procts=$this->order_model->where($where)->order($order.''.$method)->limit('5')->select();
这样就可以了!
㈡ PHP怎么递归
下面我举一个其他的例子,虽然不是族谱,但是原理都是一样的。
在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性。那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类。
递归,简单的说就是一段程序代码的重复调用,当把代码写到一个自定义函数中,将参数等变量保存,函数中重复调用函数,直到达到某个条件才跳出,返回相应的数据。
Mysql
首先我们准备一张数据表class,记录商品分类信息。表中有三个字段,id:分类编号,主键自增长;title:分类名称;pid:所属上级分类id。
class表结构:
CREATE TABLE IF NOT EXISTS `class` (
`id` mediumint(6) NOT NULL AUTO_INCREMENT,
`title` varchar(30) NOT NULL,
`pid` mediumint(6) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
插入数据后,如图:
如果要输出json格式的数据,则可使用:
echo json_encode($list);
㈢ 请 php 简单 产品分类代码
商品分类展示
设置商品分类显示不仅可使该购物系统的所有商品都分门别类的显示出来,而且为用户选择商品提供了很大的方便。首先应该建立一个单独的type表用来存储商品大类,之后在shangpin表中增加一个typeid字段,该字段中存储的内容是商品大类id值,利用这个值就可以确定该商品属于那一类。商品分类展示是在showfenlei.php中完成的,代码如下:
<!--*******************************showfenlei.php*******************************-->
<?php
include("top.php");
?>
<table width="800" height="438" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="200" height="438" valign="top" bgcolor="#E8E8E8"><div align="center">
<?php include("left.php");?>
</div></td>
<td width="10" background="images/line2.gif"></td>
<td width="590" valign="top"><table width="590" height="20" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><div align="left">
<?php
$sql=mysql_query("select * from type order by id desc",$conn);
$info=mysql_fetch_object($sql);
if($info==false)
{
echo "本站暂无商品!";
}
else
{
do
{
echo "<a href='showfenlei.php?id=".$info->id."'>".$info->typename."</a>";
}
while($info=mysql_fetch_object($sql));
}
?>
</div></td>
</tr>
</table>
<?php
if($_GET[id]=="")
{
$sql=mysql_query("select * from type order by id desc limit 0,1",$conn);
$info=mysql_fetch_array($sql);
$id=$info[id];
}
else
{
$id=$_GET[id];
}
$sql1=mysql_query("select * from type where id=".$id."",$conn);
$info1=mysql_fetch_array($sql1);
$sql=mysql_query("select count(*) as total from shangpin where typeid='".$id."' order by addtime desc ",$conn);
$info=mysql_fetch_array($sql);
$total=$info[total];
if($total==0)
{
echo "<div align='center'>本站暂无该类产品!</div>";
}
else
{
?>
<table width="550" height="25" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><div align="left"><span style="color: #666666; font-weight: bold"><span style="color: #000000">本类商品>></span><?php echo $info1[typename];?></span>
</div></td>
</tr>
</table>
<table width="550" height="10" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td background="images/line1.gif"></td>
</tr>
</table>
<table width="550" height="70" border="0" align="center" cellpadding="0" cellspacing="0">
<?php
$pagesize=10;
if ($total<=$pagesize)
{
$pagecount=1;
}
if(($total%$pagesize)!=0)
{
$pagecount=intval($total/$pagesize)+1;
}
else
{
$pagecount=$total/$pagesize;
}
if(($_GET[page])=="")
{
$page=1;
}
else
{
$page=intval($_GET[page]);
}
$sql1=mysql_query("select * from shangpin where typeid=".$id." order by addtime desc limit ".($page-1) *$pagesize.",$pagesize ",$conn);
while($info1=mysql_fetch_array($sql1)) //显示商品信息
{
?>
……
<?php
}
?>
</table>
<table width="550" height="25" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><div align="right"> 本站共有该类商品
<?php
echo $total;
?>
件每页显示<?php echo $pagesize;?>件第<?php echo $page; ?> 页/共<?php echo $pagecount; ?>页
<?php
if($page>=2) //商品分页显示
{
?>
<a href="showfenlei.php?id=<?php echo $id;?>&page=1" title="首页"><font face="webdings"> 9 </font></a>
<a href="showfenlei.php?id=<?php echo $id;?>&page=<?php echo $page-1;?>" title="前一页"><font face="webdings"> 7 </font></a>
<?php
}
if($pagecount<=4){
for($i=1;$i<=$pagecount;$i++){
?>
<a href="showfenlei.php?id=<?php echo $id;?>&page=<?php echo $i;?>"><?php echo $i;?></a>
<?php
}
}
else
{
for($i=1;$i<=4;$i++){
?>
<a href="showfenlei.php?id=<?php echo $id;?>&page=<?php echo $i;?>"><?php echo $i;?></a>
<?php
}
?>
<a href="showfenlei.php?id=<?php echo $id;?>&page=<?php echo $page-1;?>" title="后一页"><font face="webdings"> 8 </font></a>
<a href="showfenlei.php?id=<?php echo $id;?>&page=<?php echo $pagecount;?>" title="尾页"><font face="webdings"> : </font></a>
<?php
}
?>
</div></td>
</tr>
</table>
<?php
}
?>
</td>
</tr>
</table>
<?php
include("bottom.php");
?>
㈣ 我在ECshop中设置模板中商品分类页模板和商品详情页模板,网站的商品分类导航就消失了,请问这怎么解决
在ECshop中设置模板中商品分类页模板和商品详情页模板,网站的商品分类导航默认的是现实当前分类下的子分类,而不是所有的分类树。
解决方法就是首先在需要显示的页面中调用函数,比如需要在goods.php中显示该菜单,那默认状态先调用不出来。这样我们就可以先在goods.php文件中加入如下代码,位置自己选择,只要不是在包含的函数和过程中就可以。
代码如下:
$smarty->assign('topcategories', get_categories_tree('0')); // 顶级分类树
其中默认的方式是在商品分类页和商品详情页中get_categories_tree('0')中的0 对应的是 cat_id,这里改成0 就可以显示所有分类树了。
这样,我们就取得了顶级分类树,并smarty赋值给 topcategories 变量以便在前台调用。
类似
<!--{foreach from=$topcategories item=cat}-->
<dt class="{if $fenlei_id eq $cat.id}angel1down{else}angel1{/if}"><a href="{$cat.url}">{$cat.name|escape:html}</a></dt>
这种方式来调用显示。
你也可以参看我站点的一篇文章。
http://www.elingxi.com/php/0PT22010.html
如果还有疑问可以网络hi我,一般晚上在线。