這是一個(gè)典型的無級分類的問題。一般情況下,可用偽無級分類來解決。加一個(gè)字段path就能更好的解決效率問題而不去用遞歸。
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的泉山網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
正好有一段我教學(xué)時(shí)用的演示代碼,你可以參考一下。
$rs=mysql_query("select * from category where path like '$path%' order by path");
//用于對縮排的控制
$oldPath=0;
while($row=mysql_fetch_array($rs)){
echo str_repeat(' ',getDeeps($row['path'])*5);
echo $row['description'].$row['path'];
echo "br /";
}
function getDeeps($path){
$array=explode(',',$path);
return count($array);
}
執(zhí)行結(jié)果
電器1,2
家用電器1,2,5
電視1,2,5,7
洗衣機(jī)1,2,5,8
計(jì)算機(jī)1,2,6
筆記本1,2,6,10
聯(lián)想筆記本1,2,6,10,11
神舟筆記本1,2,6,10,12
臺式機(jī)1,2,6,9
服裝1,3
男裝1,3,13
女裝1,3,14
食品1,4
蔬菜1,4,15
肉類1,4,16
兩個(gè)方法
1,在sql語句里寫個(gè)CONCAT(b,c,d,e,f.....) as tt,然后php讀取tt就可以。
2,php循環(huán)輸出的時(shí)候定義個(gè)變量保存...
1.array_merge()合并
例子
代碼如下
$array
=
array('a'='bb');
$array2
=
array('b'='cc');
$array3
=
array_merge($array,$array2);
輸出結(jié)果為
Array
(
[a]
=
bb
[b]
=
cc
)
上面因?yàn)槎际菙?shù)組就沒有問題了,假如我們把$array
設(shè)置不是數(shù)組看看什么情況
代碼如下
$array
=
1;//array('a'='bb');
$array2
=
array('b'='cc');
$array3
=
array_merge($array,$array2);
print_r(
$array3
);
運(yùn)行后結(jié)果
Warning:
array_merge()
[function.array-merge]:
Argument
#1
is
not
an
array
in
E:test1.php
on
line
4
告訴我們必須是要一個(gè)數(shù)組了,那么這個(gè)我就有多種方法來解決,
1.使用is_array()
進(jìn)行判斷了,但是會(huì)發(fā)現(xiàn)如果合并數(shù)組比較多一個(gè)個(gè)判斷不合理,后來發(fā)現(xiàn)可以轉(zhuǎn)換數(shù)據(jù)類型
代碼如下
$array
=
1;//array('a'='bb');
$array2
=
array('b'='cc');
$array3
=
array_merge((array)$array,(array)$array2);
print_r(
$array3
);
輸出結(jié)果不報(bào)錯(cuò)了
Array
(
[0]
=
1
[b]
=
cc
)
他自動(dòng)把數(shù)字1轉(zhuǎn)換成了數(shù)組了,所以大家在使用時(shí)一定要注意這些細(xì)節(jié)哦。
你要隨機(jī),表里就給有一個(gè)ID
function rands($num,$max){
for($i=0;$i$num;$i++){
$a[]=rand(0,$max);
}
return $a;
}
$a=implode(',',$a);
$sql="select * from tablename where id in($a)";
$rl=mysql_query($sql);
while($r=mysql_fetch_array($rl)){
$str.=$r['title'];
}
echo $str;
首先解決,查詢數(shù)據(jù)
1
select userlist.userid,userlist.username,userinformation.address from userlist left join userinformation on userlist.userid=userinformation.userid
然后,再把查詢數(shù)據(jù),插入到新表即可
只要在上面的語句,加上插入這句sql就可以了,最終語句如下
1
insert into `user` select userlist.userid,userlist.username,userinformation.address from userlist left join userinformation on userlist.userid=userinformation.userid
$Data = M('course_card'); // 實(shí)例化Data數(shù)據(jù)對象import('ORG.Util.Page');// 導(dǎo)入分頁類$count = $Data-where($map)-count();// 查詢滿足要求的總記錄數(shù)$Page = new Page($count,1);// 實(shí)例化分頁類 傳入總記錄數(shù)$page-setConfig('header','會(huì)員卡');$Page-setConfig('prev', "上一頁");//上一頁$Page-setConfig('next', '下一頁');//下一頁$Page-setConfig('first', '首頁');//第一頁$Page-setConfig('last', "末頁");//最后一頁$Page - setConfig ( 'theme', '%HEADER% %FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%' );// 進(jìn)行分頁數(shù)據(jù)查詢 注意page方法的參數(shù)的前面部分是當(dāng)前的頁數(shù)使用 $_GET[p]獲取$nowPage = isset($_GET['p'])?$_GET['p']:1;$list = $Data-where($map)-page($nowPage.','.$Page-listRows)-select();$show = $Page-show();// 分頁顯示輸出$this-assign('page',$show);// 賦值分頁輸出$this-assign('course_card',$list);// 賦值數(shù)據(jù)集