mysql+php select 下拉列表树的简单实现
数据库设计:
--
-- 数据库: `test`
--
-- --------------------------------------------------------
--
-- 表的结构 `menu`
--
CREATE TABLE IF NOT EXISTS `menu` (
`ID` int(10) unsigned NOT NULL auto_increment,
`PID` int(11) NOT NULL,
`TITLE` varchar(200) NOT NULL,
`REMARK` varchar(200) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ;
--
-- 导出表中的数据 `menu`
--
INSERT INTO `menu` (`ID`, `PID`, `TITLE`, `REMARK`) VALUES
(1, 0, '公司', '根'),
(2, 1, '财务部', '部门'),
(3, 1, '销售部', '部门'),
(4, 1, '人事部', ''),
(5, 2, '会计', ''),
(6, 3, '业务员', ''),
(7, 4, '人事总管', '');
--------------------------------------------------------
PHP代码:
--------------------------------------------------------
<?php
include "config.php";
include "mysql.php";
$db = new Mysql('test'); //几个简单的类,不用列出来大家也看得懂。就是实例化一个数据库连接而已。
function RootMenu ($PID,$n){
global $arr,$db;
$sql = "select * from menu where `PID` =$PID";
$result = $db->query($sql);
while ($i=$db->fetch_array($result)){
$i["TITLE"] =str_repeat('--',$n).$i["TITLE"];
$arr[] =$i;
RootMenu($i["ID"],($n+4));
}
return $arr;
}
$arr = RootMenu(0,0);
?>
<select id="">
<option value="0" selected="selected">请选择部门</option>
<?php
for ($i=0;$i<count($arr);$i++) {
?>
<option value="<?php echo $arr[$i]["ID"] ?>"><?php echo $arr[$i]["TITLE"] ?></option>
<?php }?>
</select>
--------------------------------------------------------
相关文档:
在连接MySQL时,可以加上-b参数,用以取消在SQL命令执行出错时的报警声,如:
mysql -h127.0.0.1 -uroot -proot -b
这样在输入命令出错时,便不会再听到那声难听的"嘀"了。
另外还有2个关闭MYSQL的BEEP声方法
1. 使用MySQL的命令终端时,如果输入SQL有误,将有beep声。若要关闭该功能,根据mysql --help,使用mysql - ......
//将网址的参数转为变量,如:xxx.php?a=1&b=2,
//运行方法后,echo $a."|".$b, 结果:1|2
extract($_GET);
//unicode转utf8,如:中或 \u9865 转 成 中文
function unescape($str) {
$str = rawurldecode($str);
preg_match_all("/(?:%u.{4})|&#x.{4};|&am ......
1. 如果一个方法能被静态,那就声明他为静态的,速度可提高1/4;
2. echo的效率高于print,因为echo没有返回值,print返回一个整型;
3. 在循环之前设置循环的最大次数,而非在在循环中;
4. 销毁变量去释放内存,特别是大的数组;
5. 避免使用像__get, __set, __autoload等魔术方法;
6. requiere_once()比较耗资源;
7. 在 ......
<?php
//$str = "abcdef◆中华人民共和国";
//$str = "1234567890";
$str = "中华人民共和国abc中华人民共和国中华人民共和国";
$str = cut_str($str, 18);
echo $str;
function cut_str($str, $len){
if(strlen($str) <= $len) return $str;
$n = 0;
$tempstr = '';
for($i = 0; ......
1. 写一个函数,尽可能高效的,从一个标准 url
里取出文件的扩展名
例如: http://www.sina.com.cn/abc/de/fg.php
?id=1
需要取出 php 或 .php
2. 在 HTML 语言中,页面头部的 meta 标记可以用来输出文件的编码
格式,以下是一个标准的 meta 语句
<META http-equiv='Content-Type
' ......