php无限级分类(带数据库)(1/2)
代码如下 | 复制代码 |
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.111cn.net/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=gb2312" /> <head> <style type="text/css教程"> <!-- .menu { color:#000000; font-size: 12px; cursor: hand;} </style> <script type="text/网页特效"> function showmenu(menuid) { if(menuid.style.display=="none") { menuid.style.display=""; } else { menuid.style.display="none"; } } </script> <title>电视树状目录</title> </head> <body> <?php $globals["id"] =1; $jibie=1; $sql="select * from tvmenu where bid=0"; $result=mysql教程_query($sql,$conn); if(mysql_num_rows($result)>0) treemenu($conn,$result,$jibie,$id); function treemenu($conn,$result,$jibie) //进入函数循环 { $numrows=mysql_num_rows($result); echo "<table cellpadding='0' cellspacing='0' border='0'>"; for($rows=0;$rows<$numrows;$rows++) { $menu=mysql_fetch_array($result); $sql="select * from tvmenu where bid=$menu[id]"; $result_sub=mysql_query($sql,$conn); echo "<tr>"; //如果该菜单项目有子菜单,则添加javascript onclick语句 if(mysql_num_rows($result_sub)>0) { echo "<td width='20'><img src='+.gif' border='0'></td>"; echo "<td class='menu' onclick='javascript:showmenu(menu".$globals["id"].");'>"; } else { echo "<td width='20'><img src='-.gif' border='0'></td>"; echo "<td class='menu'>"; } if($menu[url]!="") echo "<a href='$menu[url]'>$menu[name]</a> "; else echo "<a href='#'>$menu[name]</a> <a href='?b={$menu[id]}&tpye=add'> 添加</a> <a href='?b={$menu[id]}&tpye=edit'> 编辑</a> <a href='?b={$menu[id]}&action=del'> 删除</a>"; echo "</td> </tr>"; if(mysql_num_rows($result_sub)>0) { echo "<tr id=menu".$globals["id"]++." style='display:none'>"; echo "<td width='20'> </td>"; echo "<td>"; //将级数加1 $jibie++; treemenu($conn,$result_sub,$jibie); $jibie--; echo "</td></tr>"; } //显示下一菜单 } echo "</table>"; } ?> <br /> <br /> <?php if ($tpye=="add") { ?> <table width="551" border="0" cellpadding="0" cellspacing="1" bgcolor="#cccccc"> <form action="" method="post" name="form1"> <tr> <td height="28" colspan="2" align="center" bgcolor="#ffffff">添加栏目</td> </tr> <tr> <td width="246" height="28" align="right" bgcolor="#ffffff">栏目名称:</td> <td width="302" height="28" bgcolor="#ffffff"><input name="name" type="text" id="name" /></td> </tr> <tr> <td height="28" align="right" bgcolor="#ffffff">所属分类:</td> <td height="28" bgcolor="#ffffff"><select name="bid"> <?php $sql="select * from tvmenu"; $que=mysql_query($sql,$conn); while($rs=mysql_fetch_array($que)){ if ($rs['id']==$b) { $selected="selected="selected""; }else{ $selected=""; } ?> <option value="<?php echo $rs["id"]; ?>" <?php echo $selected;?>><?php echo $rs["name"]; ?></option> <?php }?> </select> </td> </tr> <tr> <td height="28" colspan="2" align="center" bgcolor="#ffffff"><input type="submit" name="submit" value="提 交" /></td> </tr> </form> </table> <?php }?> |
判断用户登陆主要分几个过程,第一步是用户登陆成功后把数据保存到session中,然后当用户访问需要登陆过的用户权限时就来判断session是否为空,如果不是就登录成功。下面来看个实例
<?php教程
session_start();
if(getconfig("chatroom_admin")==$_post["username"]&&getconfig("chatroom_adminpassword")==md5($_post["password"]))
{
//登陆成功,注册session
session_register("administrator");
if(isset($_session["hack_num"]))
{
session_unregister("hack_num");
}
$_session["administrator"] = "yes";
header("location:main.php");
exit;
}
else
{
if($_session["hack_num"]=="")
{
session_register("hack_num");
$_session["hack_num"] = 1;
}
else
{
$_session["hack_num"] ++;
}
header("location:../notice.php?id=".admin_login_lost);
exit;
}
?>
看到红色的没,那里就是用户登录成功把数据保存到session['hack_num']面。
<?php
//这个页面首先判断用户是否正确登录,如未登录,就转到登录页面。
session_start();
if((!$user_id)or(!$user_array[hack_num])or(!$user_array[hack_num])){
header("location: login.php3");
}
?>
上面这段代码是用来判断session['hack_num']是否有值了,有就是登录成功了。
本站原创转载注明来源http://www.111cn.net/phper/php.html
本文章要讲的php 缓存技术是讲把数据生成一个临时缓存文件保存到硬盘,然后根据缓存文件设定的时间删除缓存文件再次生成新的缓存文件哦。代码如下 | 复制代码 |
$filename = 'cachefile.php'; //写缓存文件 function createcache($filename,$str) //读取缓存文件 function readcache($filename) |
/*
本站原创文章,转载注明来源http://www.111cn.net/phper/php.html
*/
代码如下 | 复制代码 |
function mysubstr( $str, $length ){ for( $i = 0; $i < $length; $i++ ){ $resultstr .= $str[$i]; for( $j=$i; $str[$j]!='>'; $j++,$length++ ){ $tag = ''; $charcnt++; //栈是空的直接返回 $tag = array_pop($tagstack); $index = strrpos($resultstr, $tag); for($i = $index-1; $resultstr[$i] != '>'; $i++ ){ $resultstr[$i++] = ''; return $resultstr; $sttime = microtime(true); $stmem = memory_get_usage(); $str = "a1<body>b2<p>c3<em>d4</em>e5</p>f6</body>g7h8"; echo '处理结果为:<br/><hr size=1>',htmlspecialchars( mysubstr( $str, 18 ) ),'<br />'; echo "内存使用情况:",(memory_get_usage()-$stmem),'<br />'; echo "算法运行时间(microtime):",(microtime(true)-$sttime),'<br/>'; |
//方法二
/
代码如下 | 复制代码 |
** echo '<xmp>'; |
/*
create table `member` (
`member_account` varchar(25) collate utf8_unicode_ci not null,
`member_password` varchar(32) collate utf8_unicode_ci not null,
`member_name` varchar(20) collate utf8_unicode_ci not null,
`sex` varchar(1) collate utf8_unicode_ci not null,
`schoolnumber` varchar(10) collate utf8_unicode_ci not null,
`phonenumber` varchar(15) collate utf8_unicode_ci not null,
`email` varchar(50) collate utf8_unicode_ci not null,
unique key `member_account` (`member_account`)
) engine=innodb default charset=utf8 collate=utf8_unicode_ci;
*/
?>
代码如下 | 复制代码 |
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <body> register_get.php文件 |
相关文章
- 操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了...2016-11-25
- 本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
- 这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
- 这篇文章主要介绍了Intellij IDEA连接Navicat数据库的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借价值,需要的朋友可以参考下...2021-03-25
- 在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。 一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下: 复制...2014-05-31
- C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
- 通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果...2015-10-21
- 某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库。使用以下方法,可以非常简单地实现。假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb。步骤如下:1. 首先创建新的数据库newd...2015-10-21
- mysqldump命令的用法1、导出所有库系统命令行mysqldump -uusername -ppassword --all-databases > all.sql 2、导入所有库mysql命令行mysql>source all.sql; 3、导出某些库系统命令行mysqldump -uusername -ppassword...2015-10-21
- 1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库...2013-09-23
- 这篇文章主要介绍了node.js如何操作MySQL数据库,帮助大家更好的进行web开发,感兴趣的朋友可以了解下...2020-10-29
- 这篇文章主要介绍了c#从数据库里取得数据并异步更新ui的方法,大家参考使用吧...2020-06-25
- 无限级分类在开发中经常使用,例如:部门结构、文章分类。无限级分类的难点在于“输出”和“查询”,例如 将文章分类输出为<ul>列表形式; 查找分类A下面所有分类包含的文章。1.实现原理 几种常见的实现方法,各有利弊。其中...2015-10-23
- yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2使用中的一些基本的增删改查操作。 User::find()->all(); //返回所有用户数据; User::findOne($id); //返回 主键...2015-11-24
- 在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性。那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类。 递归,简单的说就是一段程序代码的重复调用,当把...2015-10-23
- 1.用phpmyadmin创建数据库和数据表 创建数据库的时候,请将“整理”设置为:“utf8_general_ci” 或执行语句: 复制代码 代码如下:CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 创...2015-10-21
- 这篇文章主要介绍了springBoot 项目排除数据库启动方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-10
- ecshop商品无限级分类代码 function cat_options($spec_cat_id, $arr) { static $cat_options = array(); if (isset($cat_options[$spec_cat_id]))...2016-11-25
- 这篇文章主要介绍了Linux 下使用shell脚本定时维护数据库,本文通过案例分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
- “主机,用户名,密码”得到连接、“数据库,sql,连接”得到结果,最后是结果的处理显示。当然,数据库连接是扩展库为我们完成的,我们能做的仅仅是处理结果而已。...2013-09-29