首页 公务员 公选 公考 司考 会计 报关员 考研 自考 演讲 写作 科技 网络 娱乐 管理 好友 小组
PHP+MYSQL+Javascript数据库查询结果的动态显示
日期:5月31日 18时  来源:网摘  佚名  阅读:点击...
【字体: 【页面调色版 
  

  


    动态网页的三大法宝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与奥索网共同拥有,如需转载,请注明作者及出处】   

       
精彩图片
相关文章
最新更新
热评文章
公务员专题
党政专题 电信行业 公检法院 医疗卫生
工商税务 新闻信息 农林畜牧 计生服务
教育科技 金融保险 企业资源 机械化工
电力交通 行风评议 保先教育 讲话报告
公共机关 农村工作 秘书研究 建筑设计
八荣八耻 新 农 村