动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   PHP → 阅读文章

 PHP+MYSQL+Javascript数据库查询结果的动态显示

作者来源: 
阅读 5591 人次 , 2000-11-24 

动态网页的三大法宝PHP+MYSQL+JAVASCRIPT,下面是在学习php和mysql编程时的一个自己编制的程序-同学录查询,使用了以上三项法宝,其中的查询结果的输出结果我认为还比较满意,可以一次显示一条记录,每条记录是一个table,通过姓名的导航,可以逐个查看输出结果.
一.查询界面
<html>
<head>
<title>同学查询</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel=stylesheet type="text/css" href="../applet/mainstyle.css">
</head>

<body bgcolor="#FFFFFF">
<form method="post" action="query.php">
<p> </p>
<table width="41%" border="1" cellspacing="0" cellpadding="0" align="center" bordercolor="#808080" bordercolordark="#FFFFFF" bgcolor="#ffffcc">
<tr>
<td colspan="2" class="tablehead" bgcolor="#0066cc" align="center">同学查询</td>
</tr>
<tr>
<td width="23%"> 姓名: </td>
<td width="77%">
<input type="text" name="name" size="20" class="edit">
</td>
</tr>
<tr>
<td width="23%">性别:</td>
<td width="77%">
<input type="radio" name="sex" value="1" checked>
全部
<input type="radio" name="sex" value="2">

<input type="radio" name="sex" value="3">
女 </td>
</tr>
<tr>
<td> 属性:</td>
<td>
<input type="text" name="attribute" size="20" class="edit">
</td>
</tr>
<tr>
<td>输出:</td>
<td>
<input type="radio" name="output" value="1" checked>
标签
<input type="radio" name="output" value="2">
表格 </td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="Submit" value="查询" class="button">
</td>
</tr>
</table>
</form>
</body>
</html>
二.执行查询和动态显示的界面
<!--同学录查询系统:PHP+MYSQL+JAVASCRIPT-->
<html><head>
<link rel=stylesheet type="text/css" href="../applet/mainstyle.css">
<script language="javascript">
//标签显示时隐藏和打开选择的table
function showtable(id,totalnum)
{
for(i=0;i<totalnum;i++)
eval("table"+i.toString()+".style.display='none'");
eval("table"+id.toString()+".style.display=''");
}
</script>
</head><BODY>
<?
#连接和打开数据库
$dbh = mysql_connect("localhost");
$err = mysql_error();
if($err){die("连接错误");}
mysql_select_db('mydb');
$err = mysql_error();
if($err){die("打开数据库错误");}

#建立查询语句
if((trim($name)!="")&&(trim($attribute)!=""))
$query="select * from addressbook where name="".$name."" and attribute="".$attribute.""";
else if((trim($name)=="")&&(trim($attribute)==""))
$query="select * from addressbook where 1";
else if(trim($name)=="")
$query="select * from addressbook where attribute="".$attribute.""";
else if(trim($attribute)=="")
$query="select * from addressbook where name="".$name.""";
if($sex=="2")
$query=$query." and sex="男"";
else if($sex=="3")
$query=$query." and sex="女"";

#查询数据库
$ret = mysql_query($query, $dbh);
$num=mysql_num_rows($ret);
if($num<=0)
{
echo "<Script language="javascript">window.alert("没有符合条件的记录!");history.back();</script>";
exit;
}
if($output=="2")#表格形式输出
{
echo "<table width="100%" border="1" cellspacing="0" cellpadding="0" bordercolor="#808080" align="center" bordercolordark="#ffffff">
<tr>
<td colspan="13" align="center" class="tablehead" bgcolor="#0066cc">查询结果</td>
</tr>
<tr bgcolor='#ffffcc'>
<td nowrap width="2%">姓名</td>
<td nowrap width="1%">性别</td>
<td nowrap width="4%">生日</td>
<td nowrap width="6%">email</td>
<td nowrap width="6%">Bp</td>
<td nowrap width="6%">手机</td>
<td nowrap width="8%">工作电话</td>
<td nowrap width="8%">工作地址</td>
<td nowrap width="8%">家庭电话</td>
<td nowrap width="8%">家庭地址</td>
<td nowrap width="8%">邮编</td>
<td nowrap width="8%">属性</td>
<td nowrap width="10%">备注</td>
</tr>";
for($i=0;$i<$num;$i++)
{
$row = mysql_fetch_row($ret);
for($j=0;$j<14;$j++)
if(trim($row[$j])=="")
$row[$j]=" ";
if($row[3]=="0000-00-00")
$row[3]=" ";
if($row[4]=="0")
$row[4]=" ";
if($i%2==0)echo"<tr bgcolor='#CCCCCC'>";
else echo "<tr bgcolor='#DDDDDD'>";
echo "<td nowrap>$row[1]</td><td nowrap>$row[2]</td><td nowrap> $row[3]</td><td nowrap><a href='mailto: $row[9]'>$row[9]</a></td><td nowrap> $row[5]</td><td nowrap> $row[6]</td><td nowrap> $row[7]</td><td nowrap> $row[11]</td><td nowrap>$row[8]</td><td nowrap>$row[12]</td><td nowrap>$row[4]</td><td nowrap>$row[10]</td><td nowrap>$row[13]</td></tr>";
}
echo "</table><hr width='100' height='1' noshade align='left'><a href='query.htm'>新查询</a>";
}
else#标签形式输出
{
for($i=0;$i<$num;$i++)
{
$row = mysql_fetch_row($ret);
$names[$i]=$row[1];
for($j=0;$j<14;$j++)
if(trim($row[$j])=="")
$row[$j]=" ";
if($row[3]=="0000-00-00")
$row[3]=" ";
if($row[4]=="0")
$row[4]=" ";
echo "<table id='table$i' style='display:none' width='80%' border='1' cellspacing='0' cellpadding='0' align='center' bordercolor='#808080' bordercolordark='#FFFFFF'>
<tr bgcolor='#0066cc' align='center'>
<td colspan='4' nowrap class='tablehead'>查询结果<a name='#$i'></a></td>
</tr>";
$prior=$i-1;
$next=$i+1;
$last=$num-1;
if($num>1)
{
if($i==0)
echo "<tr><td colspan='4'><a href='#$next' onmouseup="showtable($next,$num)">[下一个|</a><a href='#$last' onmouseup="showtable($last,$num)">末记录]</a></td></tr>";
elseif($i==($num-1))
echo "<tr><td colspan='4'><a href='#0' onmouseup="showtable(0,$num)">[首记录|</a><a href='#$prior' onmouseup="showtable($prior,$num)">上一个]</a></td></tr>";
else
echo "<tr><td colspan='4'><a href='#0' onmouseup="showtable(0,$num)">[首记录|</a><a href='#$prior' onmouseup="showtable($prior,$num)">上一个|</a><a href='#$next' onmouseup="showtable($next,$num)">下一个|</a><a href='#$last' onmouseup="showtable($last,$num)">末记录]</a></td></tr>";
}
echo "<tr>
<td bgcolor='#ffffcc' width='9%' nowrap class>姓名</td>
<td width='39%'>$row[1]</td>
<td bgcolor='#ffffcc' width='12%' nowrap>性别</td>
<td width='40%'>$row[2]</td>
</tr>
<tr>
<td bgcolor='#ffffcc' width='9%' nowrap>生日</td>
<td width='39%'>$row[3]</td>
<td bgcolor='#ffffcc' width='12%' nowrap>email</td>
<td width='40%'><a href='mailto: $row[9]'>$row[9]</a></td>
</tr>
<tr>
<td bgcolor='#ffffcc' width='9%' nowrap>BP</td>
<td width='39%'>$row[5]</td>
<td bgcolor='#ffffcc' width='12%' nowrap>手机</td>
<td width='40%'>$row[6]</td>
</tr>
<tr>
<td bgcolor='#ffffcc' width='9%' nowrap>工作电话</td>
<td width='39%'>$row[7]</td>
<td bgcolor='#ffffcc' width='12%' nowrap>邮编</td>
<td width='40%'>$row[4]</td>
</tr>
<tr>
<td bgcolor='#ffffcc' width='9%' nowrap>家庭电话</td>
<td width='39%'>$row[8]</td>
<td bgcolor='#ffffcc' width='12%' nowrap>属性</td>
<td width='40%'>$row[10]</td>
</tr>
<tr>
<td bgcolor='#ffffcc' width='9%' nowrap>工作地址</td>
<td colspan='3'>$row[11]</td>
</tr>
<tr>
<td bgcolor='#ffffcc' width='9%' nowrap>家庭地址</td>
<td colspan='3'>$row[12]</td>
</tr>
<tr>
<td bgcolor='#ffffcc' width='9%' nowrap>备注</td>
<td colspan='3'>$row[13]</td>
</tr>
</table>";
}
echo "<script language="javascript">table0.style.display=""</script>";
echo "<table width='80%' border='0' align='center'>";
for($j=0;$j<$num/10;$j++)
{
echo "<tr>";
for($i=0;$i<10;$i++)
{
$index=$j*10+$i;
if($index>=$num)
break;
echo "<td nowrap><a href='#' onmouseup="showtable($index,$num)">$names[$index]</a></td>";
}
echo "</tr>";
}
echo "</table><hr width='85%' height='1' noshadow><center><a href='query.htm'>新查询</a></center>";
}
mysql_close($dbh);
?>
</body><html>
三.改进还很多,例如可以将查询模糊化等等.
我使用的数据库结构是,可以按照自己的需要修改.
id smallint(4)
name varchar(10)
sex char(2)
birthday date
post int(6)
bp varchar(20)
mobile varchar(20)
workphone varchar(20)
homephone varchar(20)
email varchar(30)
attribute varchar(10)
workaddr varchar(40)
homeaddr varchar(40)
memo text

【本文版权归作者cspace与奥索网共同拥有,如需转载,请注明作者及出处】

  

 本文Tagsmysql  数据库  组网  
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:一个个人网页自动化生成系统(1)
· 下一篇:MySQL用于PHP的库, 对数据库进行操作
· PHP应用程序加速探索之简介
· 如何实现给定日期的若干天以后的日期(有点类似VB中的DateAdd)
· PHP模板高级篇总结
· PHP中的加密功能
· 十天学会php之第六天


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077