萌萌妈妈 发表于 2015-2-4 00:19:17

PHP教程之一个用数据库的php二级联动

培训的第二阶段,开始了PHP语言语法结构和应用的学习。数据|数据库   <?php
/*******************************************
**********功效:php二级联动菜单*************
**********作者:冲星*************************
**********Email:njj@nuc.edu.cn**************
**********日期:2004/10/02******************
**********请转载时保存版权信息**************
*******************************************/

require_once('db.inc.php');//数据库毗连
$db=new hq_online;
$db1=new hq_online;
$db->query("select * from news_bclass order by id desc");
$fMenu="";
$fValue="";
while($db->next_record()){
$fMenu.="\"".$db->Record["bname"]."\",";
$fValue.="\"".$db->Record["id"]."\",";

}
$fMenu=substr($fMenu,0,(strlen($fMenu)-1));
$fMenu="[".$fMenu."]";//*****************************失掉var fMenu
$fValue=substr($fValue,0,(strlen($fValue)-1));
$fValue="[".$fValue."]";//*****************************失掉var fValue

//失掉*****************************var sMenu
$db->query("select * from news_bclass order by id desc");
while($db->next_record()){
$parentid=$db->Record["id"];
$db1->query("select * from news_sclass where parentid='$parentid' order by parentid desc");
while($db1->next_record()){
$num=$db1->num_rows();
$i++;
$sMenu.="\"".$db1->Record["sname"]."\",";
if($i==$num){
$sMenu="[".$sMenu."],[";
$i=0;
}
}
}
$sMenu.="]";
$sMenu=str_replace("\",]","\"]",$sMenu);
$sMenu=str_replace(",[]","]",$sMenu);
if((substr($sMenu,0,2))=="[\""){
$sMenu="[".$sMenu;
}else{
$sMenu=preg_replace("/\[{3,}/is","[[\\1",$sMenu);//婚配
}

//失掉*****************************var sValue
$db->query("select * from news_bclass order by id desc");
while($db->next_record()){
$parentid=$db->Record["id"];
$db1->query("select * from news_sclass where parentid='$parentid' order by parentid desc");
while($db1->next_record()){
$nums=$db1->num_rows();
$j++;
$sValue.="\"".$db1->Record["id"]."\",";
if($j==$nums){
$sValue="[".$sValue."],[";
$j=0;
}
}
}
$sValue.="]";
$sValue=str_replace("\",]","\"]",$sValue);
$sValue=str_replace(",[]","]",$sValue);
if((substr($sValue,0,2))=="[\""){
$sValue="[".$sValue;
}else{
$sValue=preg_replace("/\[{3,}/is","[[\\1",$sValue);//婚配
}

?>
<div id="tar"></div>
<SCRIPT LANGUAGE="JavaScript" DEFER>
var fMenu = <?php echo $fMenu; ?>;
var fValue = <?php echo $fValue; ?>;
var sMenu = <?php echo $sMenu; ?>;
var sValue = <?php echo $sValue; ?>;

var oWhere = document.all.tar;
var ofMenu = document.createElement("<SELECT name='bigclass'>");
var osMenu = document.createElement("<SELECT name='smallclass'>");
with(oWhere)appendChild(ofMenu),appendChild(osMenu);

createMainOptions();
createSubOptions(0);

ofMenu.onchange = function() {createSubOptions(this.selectedIndex);};

function createMainOptions() {
for(var i=0;i<fMenu.length;i++)ofMenu.options = new Option(fMenu,fValue);
}
function createSubOptions(j) {
with(osMenu) {
length=0;
for(var i=0;i<sMenu.length;i++)osMenu.options = new Option(sMenu,sValue);
}
}
</SCRIPT>

<?php
/*
挪用办法:
将此代码保留为文件ld2.php
例如要在write.php页面放一个二级联动,则在write.php页面
要放置二级联动的中央加一句require_once("ld2.php");
若write.php要向save.php页面提交数据则在save.php中利用
$bigclass=$_POST["bigclass"];//获得大类的id值
$smallclass=$_POST["smallclass"];//获得小类的id值
接上去就晓得该怎样做了吧……
附表的布局:
 能够有的表的布局和我有些分歧,但根基点都一样,修正法式
中对应字段和表名就ok
法式写的有点乱,不外相对可以宁神的利用
接待与我交换切磋!
---------------------------------------------------------
大类的表news_bclass布局

CREATE TABLE news_bclass (
id int(11) NOT NULL auto_increment,
bname varchar(10) NOT NULL default '',
PRIMARY KEY (id),
UNIQUE KEY id_2 (id),
KEY id (id)
) TYPE=MyISAM;

字段申明:bname为大类中文称号
------------------------------

小类的表news_sclass布局

CREATE TABLE news_sclass (
id int(11) NOT NULL auto_increment,
sname varchar(10) NOT NULL default '',
parentid int(10) NOT NULL default '0',
bname varchar(10) NOT NULL default '',
PRIMARY KEY (id),
UNIQUE KEY id_2 (id),
KEY id (id)
) TYPE=MyISAM;

字段申明:sname为小类中文称号
     parendid为大类中的id值
bname为大类中文称号
-----------------------------------------------------------


*/
?>

db.inc.php文件的内容
<?php
class hq_online extends db_sql{
var $Host="localhost";
var $Database="hq";
var $User="root";
var $password="";
}一下弹出N多页面!很明显,你的留言本并没有做好安全防范,被人用JS代码小小的耍了一下,我很同情你这个时候的感受,但是没有别的办法了,继续努力吧!

精灵巫婆 发表于 2015-2-4 11:29:32

建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。

金色的骷髅 发表于 2015-2-4 21:06:11

,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。

老尸 发表于 2015-2-6 23:42:34

对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。

兰色精灵 发表于 2015-2-16 10:05:33

对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。

admin 发表于 2015-2-28 04:28:42

说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。

仓酷云 发表于 2015-3-7 02:35:45

Ps:以上纯属原创,如有雷同,纯属巧合

再现理想 发表于 2015-3-12 20:23:43

首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。

飘飘悠悠 发表于 2015-3-17 05:10:32

学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。

透明 发表于 2015-3-20 16:16:25

没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。

莫相离 发表于 2015-3-24 21:59:41

至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。

第二个灵魂 发表于 2015-3-30 00:56:40

最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。

小女巫 发表于 2015-4-10 23:14:29

写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。

再见西城 发表于 2015-4-12 04:23:43

先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。

简单生活 发表于 2015-4-16 10:00:03

作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。

山那边是海 发表于 2015-4-17 10:35:41

不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。

因胸联盟 发表于 2015-4-21 09:17:16

我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。

不帅 发表于 2015-4-23 00:05:54

没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。

若相依 发表于 2015-4-26 14:10:49

写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。

灵魂腐蚀 发表于 2015-5-1 21:09:21

首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
页: [1]
查看完整版本: PHP教程之一个用数据库的php二级联动