㈠ 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我,一般晚上在線。