PHP网页设计一个SQL办理员的web接口
也或许是因为我还没有真正的学到深处吧,说实在的,PHP中的很多高级点的应用,如PHP类、PHP函数基本还是不懂吧! <?/*************************************************************************************
* SQLAdminv2.0-AnSQLAdministrationUserInterfacefortheWeb *
* Copyright(C)1997-98 AlessandroVernet<avernet@scdi.org> *
*************************************************************************************
* Thislibraryisfreesoftware;youcanredistributeitand/or *
* modifyitunderthetermsoftheGNULibraryGeneralPublic *
* LicenseaspublishedbytheFreeSoftwareFoundation;either *
* version2oftheLicense,or(atyouroption)anylaterversion.*
* *
* Thislibraryisdistributedinthehopethatitwillbeuseful, *
* butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof *
* MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE. SeetheGNU*
* LibraryGeneralPublicLicenseformoredetails. *
* *
* YoushouldhavereceivedacopyoftheGNULibraryGeneralPublic *
* Licensealongwiththislibrary;ifnot,writetothe *
* FreeSoftwareFoundation,Inc.,59TemplePlace-Suite330, *
* Boston,MA 02111-1307,USA. *
*************************************************************************************/
/*TODO:
*-Addsortorder.
*-Addsimpleview.
*-Addsomedocumentation.
*/
/*LIMITATIONS:
*-WorksonlywithmSQL.
*/
/*HISTORY:
*-97-11-05(avernet)Correctedabugwithquote.
*-98-01-01(avernet)AddedasortColumnparameterto
* administrationTablefunction.
*-98-03-14(avernet)AddedfunctionaddTabletoenableusersto
* add(butnotmodify)enentrytothedatabase.
*-98-05-19(avernet)SubmittedtoPX.
*-98-10-11(avernet)NowSQLAdminworkswithPHP3.ThePHP2version
* willnotbemainteainedanymore.
*-98-10-11(avernet)SQLAdminisnowdistributedundertheLGPL
* insteadofMPL.
*/
functionescapeforhtml($string)
{
$result=$string;
//$result=ereg_replace("\"",""",$result);
$result=ereg_replace("<","<",$result);
$result=ereg_replace(">",">",$result);
return$result;
}
functiondisplayTuple($fieldsNumber,$fieldNames,
$fieldLengths,$values,$mode)
{
$result="";
$result.="<FORMMETHOD=\"post\"><TABLEBORDER><TR>".
"<TDBGCOLOR=\"#CCCCFF\">";
$result.="<TABLECELLSPACING=\"0\"CELLPADDING=\"0\">";
$fieldIndex=0;
while($fieldIndex<$fieldsNumber)
{
$result.="<TR><TD>".$fieldNames[$fieldIndex]."</TD><TD>";
if($fieldLengths[$fieldIndex]<=128)
{
$result.="<INPUTTYPE=\"text\"NAME=\"".
$fieldNames[$fieldIndex]."\"VALUE=\"".
$values[$fieldIndex]."\"SIZE=\"64\">";
}
else
{
$result.="<TEXTAREANAME=\"".
$fieldNames[$fieldIndex]."\"".
"COLS=\"64\"ROWS=\"10\"WRAP=\"virtual\">".
escapeforhtml($values[$fieldIndex])."</TEXTAREA>";
}
$result.= "<INPUTTYPE=\"hidden\"NAME=\"old-".
$fieldNames[$fieldIndex].
"\"VALUE=\"".escapeforhtml($values[$fieldIndex])."\">".
"</TD></TR>";
$fieldIndex++;
}
$result.="<TR><TDALIGN=\"center\"COLSPAN=\"2\">";
if($mode=="modify")
{
$result.="<INPUTTYPE=\"submit\"NAME=\"remove\"VALUE=\"Remove\">";
$result.="<INPUTTYPE=\"submit\"NAME=\"update\"VALUE=\"Update\">";
}
else
{$result.="<INPUTTYPE=\"submit\"NAME=\"add\"VALUE=\"Add\">";}
$result.="</TABLE></TD></TR></TABLE></FORM>";
return$result;
}
functionfieldFromType($text,$type)
{
if($type=="int"||$type=="uint"||$type== "real")
{$result=$text;}
else
{$result="'".AddSlashes($text)."'";}
return$result;
}
functionexecuteMsql($database,$command)
{
/*echo"<TT>".$command."</TT><HR>";*/
msql($database,$command);
}
functionhandleRemove($database,$table,$fieldsNumber,
$fieldNames,$fieldLengths,$fieldTypes)
{
global$remove;
if($remove!="")
{
$command="DELETEFROM".$table."WHERE";
$fieldIndex=0;
while($fieldIndex<$fieldsNumber)
{
$fieldName="old-".$fieldNames[$fieldIndex];
global$$fieldName;
$command.=$fieldNames[$fieldIndex]."=".
fieldFromType($$fieldName,$fieldTypes[$fieldIndex]);
if($fieldIndex!=$fieldsNumber-1)
{$command.="AND";}
$fieldIndex++;
}
executeMsql($database,$command);
}
}
functionhandleUpdate($database,$table,$fieldsNumber,
$fieldNames,$fieldLengths,$fieldTypes)
{
global$update;
if($update!="")
{
$command="UPDATE".$table."SET";
$fieldIndex=0;
while($fieldIndex<$fieldsNumber)
{
$fieldName=$fieldNames[$fieldIndex];
global$$fieldName;
$command.=$fieldName."=".
fieldFromType($$fieldName,$fieldTypes[$fieldIndex]);
if($fieldIndex!=$fieldsNumber-1)
{$command.=",";}
$fieldIndex++;
}
$command.="WHERE";
$fieldIndex=0;
while($fieldIndex<$fieldsNumber)
{
$fieldName="old-".$fieldNames[$fieldIndex];
global$$fieldName;
$command.=$fieldNames[$fieldIndex]."=".
fieldFromType($$fieldName,$fieldTypes[$fieldIndex]);
if($fieldIndex!=$fieldsNumber-1)
{$command.="AND";}
$fieldIndex++;
}
executeMsql($database,$command);
}
}
functionhandleAdd($database,$table,$fieldsNumber,
$fieldNames,$fieldLengths,$fieldTypes)
{
global$add;
if($add!="")
{
$command="INSERTINTO".$table."(";
$fieldIndex=0;
while($fieldIndex<$fieldsNumber)
{
$command.=$fieldNames[$fieldIndex];
if($fieldIndex!=$fieldsNumber-1)
{$command.=",";}
$fieldIndex++;
}
$command.=")VALUES(";
$fieldIndex=0;
while($fieldIndex<$fieldsNumber)
{
$fieldName=$fieldNames[$fieldIndex];
global$$fieldName;
$command.=fieldFromType($$fieldName,$fieldTypes[$fieldIndex]);
if($fieldIndex!=$fieldsNumber-1)
{$command.=",";}
$fieldIndex++;
}
$command.=")";
executeMsql($database,$command);
}
}
functiondisplayRemoveUpdate($database,$table,$sortColumn,
$fieldsNumber,$fieldNames,$fieldLengths)
{
$result="";
if($sortColumn!="")
{$sortColumn="ORDERBY".$sortColumn;}
$msqlresult=msql($database,"SELECT*FROM".$table.$sortColumn);
$tuplesNumber=msql_numrows($msqlresult);
$tupleIndex=0;
while($tupleIndex<$tuplesNumber)
{
$fieldIndex=0;
while($fieldIndex<$fieldsNumber)
{
$values[$fieldIndex]=msql_result($msqlresult,$tupleIndex,
$fieldNames[$fieldIndex]);
$fieldIndex++;
}
$result.=displayTuple($fieldsNumber,$fieldNames,
$fieldLengths,$values,"modify");
$tupleIndex++;
}
return$result;
}
functiondisplayAdd($fieldsNumber,$fieldNames,$fieldLengths)
{
$result="";
$fieldIndex=0;
while($fieldIndex<$fieldsNumber)
{
$values[$fieldIndex]="";
$fieldIndex++;
}
$result.=displayTuple($fieldsNumber,$fieldNames,
$fieldLengths,$values,"add");
msql_close();
return$result;
}
functionadministrationTable($database,$table,$sortColumn)
{
$result="";
msql_connect( "localhost");
$msqlresult=msql($database,"SELECT*FROM".$table);
$fieldsNumber=msql_numfields($msqlresult);
$msqlresult=msql_listfields($database,$table);
$fieldIndex=0;
while($fieldIndex<$fieldsNumber)
{
$fieldNames[$fieldIndex]=msql_fieldname($msqlresult,$fieldIndex);
$fieldLengths[$fieldIndex]=msql_fieldlen($msqlresult,$fieldIndex);
$fieldTypes[$fieldIndex]=msql_fieldtype($msqlresult,$fieldIndex);
$fieldIndex++;
}
handleRemove($database,$table,$fieldsNumber,$fieldNames,$fieldLengths,$fieldTypes);
handleUpdate($database,$table,$fieldsNumber,$fieldNames,$fieldLengths,$fieldTypes);
handleAdd($database,$table,$fieldsNumber,$fieldNames,$fieldLengths,$fieldTypes);
$result.=displayRemoveUpdate($database,$table,$sortColumn,$fieldsNumber,$fieldNames,
$fieldLengths);
$result.=displayAdd($fieldsNumber,$fieldNames,$fieldLengths);
return$result;
}
functionaddTable($database,$table)
{
$result="";
msql_connect( "localhost");
$msqlresult=msql($database,"SELECT*FROM".$table);
$fieldsNumber=msql_numfields($msqlresult);
$msqlresult=msql_listfields($database,$table);
$fieldIndex=0;
while($fieldIndex<$fieldsNumber)
{
$fieldNames[$fieldIndex]=msql_fieldname($msqlresult,$fieldIndex);
$fieldLengths[$fieldIndex]=msql_fieldlen($msqlresult,$fieldIndex);
$fieldTypes[$fieldIndex]=msql_fieldtype($msqlresult,$fieldIndex);
$fieldIndex++;
}
handleAdd($database,$table,$fieldsNumber,$fieldNames,$fieldLengths,$fieldTypes);
$result.=displayAdd($fieldsNumber,$fieldNames,$fieldLengths);
return$result;
}
?> 熟悉了PHP和MYSQL开发的要领之后,再回头看你写的那个留言本,你也许会怀疑那真的是你写的吗?当然,如果屋里还有鬼的话,也许是它写的-_- 小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。 这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。 php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会) 本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。 我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。 我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能: 至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。 ,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。 php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会) 学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。 微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。 ,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。 没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。 首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。 对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。 使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。 使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的 我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。 php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
页:
[1]
2