實現php無限極分類的方法

來源:互聯網
上載者:User

今天寫了下無限極分類 下面就把代碼貼上來了 寫的不怎麼樣。

method of classify one

<?php   /*          reader: 這是自己寫的無限極分類實現方法 裡面的編輯方法只是對分類名進行了編輯    沒有進行移動操作 小弟能力有限忘大家多多包涵啊           第一種方法:   CREATE TABLE `types` (     `type_id` int(11) NOT NULL AUTO_INCREMENT,     `type_name` varchar(20) NOT NULL,     `type_p_id` varchar(64) NOT NULL DEFAULT '-',     PRIMARY KEY (`type_id`),     KEY `type_name` (`type_name`),     KEY `tname` (`type_name`)   ) ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=utf8   註:    這裡沒做欄位有效驗證;    type_id     表示主鍵自增     type_name     表示分類名    type_p_id     表示分類路徑 這裡的分類路徑是 上層父類的分類路徑加上此類的主鍵id 用逗號隔開   */error_reporting(7);   header("Content:text/html;charset=utf-8");   //這裡先進行操作的判斷   $arr = array('list','add','del','edit','addok','edit_ok');   $act= in_array($_GET['ac'],$arr)?$_GET['ac']:$arr[0];   //串連資料庫   $conn = mysql_connect("localhost","root","root")or die('資料庫連接失敗');   mysql_select_db("study",$conn);   mysql_query("set names utf8");   //根據分類層進行排序   $sql = "select * from types order by type_p_id";   $sql1 = mysql_query($sql);   //添加分類   if($act == "addok"){       $type_id = $_POST['type_id'];       $type_name = $_POST['type_name'];       //如果等於0表示是跟目錄       if($type_id=="0"){           $sql = "insert into types set type_name = '{$type_name}'";           $res = mysql_query($sql);           $id = mysql_insert_id();           $sql = "update types set type_p_id = '$id,' where type_id=$id";           $res = mysql_query($sql);           if( mysql_affected_rows ()>0){               echo "<script>location.href='ok.php?act=list'</script>";           }else{               echo "<script>alert('添加失敗');</script>";           }       }//如果不等於0       else{           //根據typeid 找到 該id下的type_p_id           $sql = "select type_p_id from `types` where type_id =  $type_id";           $res = mysql_query($sql);           $res = mysql_fetch_assoc($res);           $type_id = $res['type_p_id'];                  //先將名稱插入進去           $sql = "insert into types set type_name = '{$type_name}'";           $res = mysql_query($sql);           //擷取最後執行的id 然後進行資料更新 主要更新 type_p_id           $id = mysql_insert_id();           $sql = "update types set type_p_id = '$type_id$id,' where type_id=$id";           $res = mysql_query($sql);           if($res){               echo "<script>location.href='ok.php?act=list'</script>";           }else{               echo "<script>alert('添加失敗');</script>";           }       }   }elseif($act=="add"){   ?>   <form method="post" action="?ac=addok">   新分類名稱:    <input type="text" name="type_name"><br/>   當前分類:<select name="type_id" >       <option  value="0">頂級分類</option>       <?php       //迴圈遍曆分類       while($res = mysql_fetch_assoc($sql1)){           //尋找 ","號出現的次數           $m=substr_count($res['type_p_id'],",");           //使用空格替換 "空格"           $strpad = str_pad("",$m*8*2,"&#12288;");           if($m==1){               $sele = "disabled";           }else{               $sele = "";           }       ?>           <option value="<?php echo $res['type_id']?>"><?php  echo $strpad.$res['type_name']?></option>       <?php       }       ?>       </select><br />       <input type="submit"  value="添加"/>   </form>   <?php                   }elseif($act == "list"){       //擷取列表根據 分類層進行排序       $sql = "select * from types order by type_p_id";       $res = mysql_query($sql);   ?>   <table width="50%" style="font-size:12px;margin-left:20%;">   <tr><td>id</td><td>分類名</td><td>path路徑</td><td>操作</td></tr>   <?php   while($arr = mysql_fetch_assoc($res)){?>   <tr>       <td><?php echo $arr['type_id']?></td>       <td><?php echo $arr['type_name']?></td>       <td><?php echo $arr['type_p_id']?></td>       <td ><a href="?ac=edit&type_id=<?php echo $arr['type_id'];?>">編輯</a> |           <a href="?ac=del&type_id=<?php echo $arr['type_id'];?>">刪除</a></td>   </tr>   <?php        }   ?>   </table>   <input type="button"  value="添加"  onclick="(location.href='?ac=add')">   <?php                   }elseif($act == "edit"){       $id = $_GET['type_id'];       $sql = "select *from  `types` where type_id=$id ";       $res = mysql_query($sql);       echo "<form  method='post'  action='?ac=edit_ok'>";       while($arr = mysql_fetch_assoc($res)){           echo "當前名稱:{$arr['type_name']}"."<br />";           echo "新名稱:<input type='text'  name='n_type_name'  >"."<br />";           echo "<input type='hidden'  value={$arr['type_id']} name='id'/>";       }       echo "<input type='submit'  value='更新'>";       echo "</form>";   }elseif($act == "edit_ok"){       $name = trim($_POST['n_type_name']);       $id = $_POST['id'];       if(!empty($name)){           $sql = "update  `types` set type_name='$name' where type_id=$id";           mysql_query($sql);           echo "<script>location.href('ok.php?act=list')</script>";       }else{           echo "<script>location.href('ok.php?act=list')</script>";       }   }elseif($act == 'del'){       //這裡的刪除是要把當前分類 和當前的子分類都要刪除 所以用到$id%       $id = $_GET['type_id'];       $sql ="delete from `types` where type_p_id like '$id%' ";       $res = mysql_query($sql);       if($res){           echo "<script>location.href('ok.php?act=list')</script>";       }else{           echo "<script>alert('刪除失敗');</script>";       }   }   ?>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.