初學遞歸,接觸無限分類,小小的嘗試

今日學習的是無限循環,這與遞歸有關。其實我本身還不是徹底熟悉和上手,還須要琢磨琢磨。php

初步學習遞歸,算是無限分類的一個小練習。 ** 表:cate id int auto 自動遞增 pid int 0爲最大的分類 catename varchar 分類名稱 **html

讀取數據庫的cate表分類以下: //分類練習 include '../include.php';mysql

function getList($pid=0,&$result=array(),$spac=0)
{
	$spac = $spac + 4;
	$sql = "SELECT * FROM cate where pid='$pid' ";
	$query = mysql_query($sql);

	//獲取數組,傳入$result
	while($row = mysql_fetch_assoc($query))
	{
		$row['catename'] = str_repeat(' ', $spac).'|--'.$row['catename'];
		$result[] = $row;
		//遞歸就是調用本身自己
		getList($row['id'],$result,$spac);
	}
	return $result;
}

//封裝
function display($pid=0)
{
	$rs = getList($pid);
	$str = '<select name="cate">';
	foreach ($rs as $key => $value) {
		$str .="<option>{$value['catename']}</option>";
	}
	return $str .="</select>";
}
echo display();

運行效果: 在此輸入圖片描述 在此輸入圖片描述 輸入分類:sql

<html> <meta http-equiv="content-type" content="text/html" charset="utf8"> <head> <title>添加分類</title> </head> <body> <h1 align="center">添加分類</h1> <hr> <form method="post" action="cate.php"> <table width="600" align="center" border="0" cellpadding="0" cellspacing="1" > <tr> <td width="80">請輸入分類</td> <td width="40"><input type="text" name="catename" size="20"></td> <td width="50">分類id</td> <td width="30"><input type="text" name="pid"></td> <td><input type="submit" name="sub" value="提交"></td> </tr>數據庫

</table>
<!-- 方便本身查看作的實時表查看分類 -->
<table align="center" border="1">
	<h1 align="center">現有信息表</h1>
<hr>
<?php 
while($res = mysql_fetch_array($query))
	{
?>
	<tr>
		<td>id:</td>
		<td><?php echo $res['id']; ?></td>
		<td>分類名稱</td>
		<td><?php echo $res['catename']; ?></td>
		<td>pid:</td>
		<td><?php echo $res['pid']; ?></td>
		<br>
	</tr>

<?php } echo '</table> </form> </body> </html>'; // 實時表到這裏結束 //填寫分類名稱catename,pid if(isset($_POST['sub'])){ $catename = $_POST['catename']; $pid = $_POST['pid']; $table = 'cate'; if(empty($catename)) { echo "分類名不能爲空哦"; }else{ cate($table,$catename,$pid);//調用 sql.func.php中的cate分類函數 } } ?>數組

運行效果: 在此輸入圖片描述函數

相關文章
相關標籤/搜索