免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3944 | 回复: 18
打印 上一主题 下一主题

跪求php问题,高手快来 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-26 13:37 |只看该作者 |倒序浏览
本人现在在做一个录入系统,不过遇到些问题,需向各位高手请教,请各位高手一定要给我多多支招,先谢了!

我要做出来的效果是这个样子的。



就是我们公司的员工如果是一个部门的话,那部门的名称只要显示一次就行了。

而我现在的效果是这样的



所以请教各位高手帮一下我,我知道如果光是html语言的话,那好办,合并一下单元格就完事了,不过我这个是和数据库连接的,以上的都是体现的数据库的内容。

以下是代码部分供参考,如果哪位高手可以解决的话,请直接在代码上修改,最好用不同的颜色,如果您只是提示用什么函数,该怎么做,那就免了,因为我没很多时间去试。如果我有哪里说的不当的地方,敬请包涵。

<?php include("conn.php";?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> 公司通讯录 </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<link rel="stylesheet" type="text/css" href="mystyle.css">
<style type="text/css">
<!--
.style1 {font-size: 14px; font-weight: bold;}
.style2 (font-size: 13px
-->
</style>
</HEAD>

<BODY>

<TABLE width="628" align="center" border="0" cellpadding="0" cellspacing="0">
<TR>
        <TD width="628" height="107" align="center" background="images/top.jpg"></TD>
</TR>
<TR>
        <TD>
        <TABLE width="628" height="38" align="center" border="0" cellpadding="0" cellspacing="0">
        <TR>
                <TD width="148" align="center" valign="middle"><font color="#6b0292"><?php echo date("Y-m-d"." ".date("l";?></font></TD>
        <TD width="60" align="center" valign="middle"><font color="#6b0292"><a href="index.php">Main page</a></font></TD>
                <TD width="140" align="center" valign="middle"><font color="#6b0292">Tel.(021)</font></TD>
                <TD width="140" align="center" valign="middle"><font color="#6b0292">Mobile No.16</font></TD>
                <TD width="140" align="center" valign="middle"><font color="#6b0292">Fax.(021)</font></TD>
        </TR>
        </TABLE></TD>
</TR>

</TABLE>
<?php
$sql=mysql_query("select count(*) as total from tb_txl",$conn);
$info=mysql_fetch_array($sql);
$total=$info[total];
if($total==0){
echo "本公司暂无员工!";
}
else{
?>
<FORM name="form1" METHOD="OST" ACTION="">
<TABLE width="628" align="center" border="2" cellpadding="2" cellspacing="2" bordercolor="#6b0292">
<TR>
        <TD width="90" height="15" align="center" valign="middle"><span class="style1">Department</span></TD>
        <TD width="120" align="center" valign="middle" class="style1">Employee</TD>
        <TD width="70" align="center" valign="middle" class="style1">Ext.</TD>
        <TD width="120" align="center" valign="middle" class="style1">Mobile-Ext.</TD>
        <TD width="100" align="center" valign="middle" class="style1">Mobile</TD>
        <TD width="138" align="center" valign="middle" class="style1">E-mail</TD>
</TR>
<?php
       
         $sql1=mysql_query("select * from tb_txl order by Department";
     while($info1=mysql_fetch_array($sql1)){
     ?>
<TR>
        <TD height="15" align="center" valign="middle"><span class="style2"><?php echo $info1[Department];?></span></TD>
        <TD align="center" valign="middle" class="style2"><?php echo $info1[Employee];?></TD>
        <TD align="center" valign="middle" class="style2"><?php echo $info1[Ext];?></TD>
        <TD align="center" valign="middle" class="style2"><?php echo $info1[MobileExt];?></TD>
        <TD align="center" valign="middle" class="style2"><?php echo $info1[Mobile];?></TD>
        <TD align="center" valign="middle" class="style2"><?php echo $info1[Email];?></TD>
</TR>
<?php
         }
         
        ?>
</TABLE>
</FORM>
<?php
         }
?>

</BODY>
</HTML>

论坛徽章:
0
2 [报告]
发表于 2008-09-26 14:06 |只看该作者
别光看呀,大家帮我出出主意呀。每人说一点也好的。

论坛徽章:
0
3 [报告]
发表于 2008-09-26 16:18 |只看该作者
<TABLE width="628" align="center" border="2" cellpadding="2" cellspacing="2" bordercolor="#6b0292">
<TR>
        <TD width="90" height="15" align="center" valign="middle"><span class="style1">Department</span></TD>
        <TD width="120" align="center" valign="middle" class="style1">Employee</TD>
        <TD width="70" align="center" valign="middle" class="style1">Ext.</TD>
        <TD width="120" align="center" valign="middle" class="style1">Mobile-Ext.</TD>
        <TD width="100" align="center" valign="middle" class="style1">Mobile</TD>
        <TD width="138" align="center" valign="middle" class="style1">E-mail</TD>
</TR>
<?php

$infos = array();
$sql1=mysql_query("SELECT *
FROM tb_txl
LIMIT 100"
);
while($info1=mysql_fetch_array($sql1)){
    $infos[$info1["Department"]][] = $info1;
}

foreach( $infos as $k => $v )
{
    $dept_count = count( $v );
    $flag = 0;
    if ( $key )
    {
        ?>
    <tr>
        <td colspan="<?=count( $val )?>">&nbsp;</td>
    </tr>
<?php
    }
    foreach( $v as $key => $val )
    {
        ?>
<TR>
<?php
        if ( !$flag )
        {
            ?>
        <TD height="15" align="center" valign="middle" rowspan="<?php echo $dept_count;?>"><span class="style2"><?php echo $k;?></span></TD>
<?php
        }
?>
        <TD align="center" valign="middle" class="style2"><?php echo $val[Employee];?></TD>
        <TD align="center" valign="middle" class="style2"><?php echo $val[Ext];?></TD>
        <TD align="center" valign="middle" class="style2"><?php echo $val[MobileExt];?></TD>
        <TD align="center" valign="middle" class="style2"><?php echo $val[Mobile];?></TD>
        <TD align="center" valign="middle" class="style2"><?php echo $val[Email];?></TD>
</TR>
<?php
        $flag = 1;
    }
}
?>
</TABLE>

替换下面那个表格,
SQL查询少了个括号,你再试试,或者有什么报错信息,贴上来看看

[ 本帖最后由 fredyj 于 2008-9-27 01:03 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2008-09-26 17:10 |只看该作者
楼上的那位,你的水平可能真的很高,写的我都不怎么看的懂,可是实现不了。

论坛徽章:
0
5 [报告]
发表于 2008-09-26 17:55 |只看该作者
  1. <?
  2. //$array 是整个数据的二维数组
  3. function arr_count($arr) //取得该值的个数
  4. {
  5.         gloabl $array;
  6.         $i = 0;
  7.         foreach ($arral as $val)
  8.         {
  9.                 if ($val[Department] == $arr)
  10.                 {
  11.                         $i++;
  12.                 }
  13.         }
  14.         return $i;
  15. }
  16. $dept = "";
  17. foreach ($array as $val)
  18. {
  19.         if ($dept != $val[Department])
  20.         {
  21.                 $n = arr_count($val[Department]);
  22.                 $m = $n;
  23.                 $dept = $val[Department];
  24.         }
  25. ?>
  26.   <tr>
  27.     <?
  28.         if ($m > 0 && $m != $n)
  29.         {
  30.                 $m--;
  31.         } else {
  32.         ?>
  33.     <td rowspan="<? echo $n; ?>">&nbsp;</td>
  34.     <?
  35.         }
  36.         ?>
  37.         <td>&nbsp;</td>
  38.     <td>&nbsp;</td>
  39.     <td>&nbsp;</td>
  40.   </tr>
  41. <?
  42. }
  43. ?>
复制代码

这个是我的循环思路,不知道能否帮助你。

论坛徽章:
0
6 [报告]
发表于 2008-09-26 18:14 |只看该作者
帮楼主顶贴。

论坛徽章:
0
7 [报告]
发表于 2008-09-26 22:49 |只看该作者
<?php
/*
select返回的值为$r
第1列值one,第2列值tow
*/

$r=array(
    0=>array(
        "one" => "asd",
        "tow" =>  111
         ),
    1=>array(
        "one" => "cay",
        "tow" =>  321
         ),
    2=>array(
        "one" => "cay",
        "tow" =>  1321
         ),
    3=>array(
        "one" => "asd",
        "tow" =>  1321
         ),
    4=>array(
        "one" => "cay",
        "tow" =>  1221
         )
    );
for($i = 0;$i<count($r);$i++){
    $new_r["one"][$i] = $r[$i]["one"];
}
sort($new_r["one"]);
$count = array_count_values($new_r["one"]);
$temp="";
$html ="<table border=\"1\" bordercolor=\"#000000\" >\r\n";
foreach($new_r["one"] as $k => $v){
    if($v == $temp){
        $html.= "<tr><td>". $r[$k]["tow"]."</td></tr>\r\n";
    }else{
        $html.= "<tr><td rowspan=\"".$count[$v]."\">".$v."</td><td>". $r[$k]["tow"]."</td></tr>\r\n";
    }
     $temp = $v;
}
$html .="</table>\r\n";
echo $html;
?>

很实际的人呢~~我可以带写,但收费,有意联系

论坛徽章:
0
8 [报告]
发表于 2008-09-27 00:16 |只看该作者
lz为何不去参考一下phpmyadmin的源码

论坛徽章:
0
9 [报告]
发表于 2008-09-27 01:08 |只看该作者
原帖由 andy.shi 于 2008-9-26 17:10 发表
楼上的那位,你的水平可能真的很高,写的我都不怎么看的懂,可是实现不了。


抱歉,SQL查询那里少写了个括号,我这里问题不太大,你再贴一遍试试

<TABLE width="628" align="center" border="2" cellpadding="2" cellspacing="2" bordercolor="#6b0292">
<TR>
        <TD width="90" height="15" align="center" valign="middle"><span class="style1">Department</span></TD>
        <TD width="120" align="center" valign="middle" class="style1">Employee</TD>
        <TD width="70" align="center" valign="middle" class="style1">Ext.</TD>
        <TD width="120" align="center" valign="middle" class="style1">Mobile-Ext.</TD>
        <TD width="100" align="center" valign="middle" class="style1">Mobile</TD>
        <TD width="138" align="center" valign="middle" class="style1">E-mail</TD>
</TR>
<TR>
        <TD height="15" align="center" valign="middle" rowspan="3"><span class="style2">ceo</span></TD>
        <TD align="center" valign="middle" class="style2">9</TD>
        <TD align="center" valign="middle" class="style2">2</TD>
        <TD align="center" valign="middle" class="style2">2</TD>
        <TD align="center" valign="middle" class="style2">9</TD>
        <TD align="center" valign="middle" class="style2">3</TD>
</TR>
<TR>
        <TD align="center" valign="middle" class="style2">4</TD>
        <TD align="center" valign="middle" class="style2">10</TD>
        <TD align="center" valign="middle" class="style2">0</TD>
        <TD align="center" valign="middle" class="style2">4</TD>
        <TD align="center" valign="middle" class="style2">5</TD>
</TR>
<TR>
        <TD align="center" valign="middle" class="style2">6</TD>
        <TD align="center" valign="middle" class="style2">3</TD>
        <TD align="center" valign="middle" class="style2">7</TD>
        <TD align="center" valign="middle" class="style2">10</TD>
        <TD align="center" valign="middle" class="style2">6</TD>
</TR>
    <tr>
        <td colspan="6"> </td>
    </tr>
<TR>
        <TD height="15" align="center" valign="middle" rowspan="2"><span class="style2">adm</span></TD>
        <TD align="center" valign="middle" class="style2">6</TD>
        <TD align="center" valign="middle" class="style2">3</TD>
        <TD align="center" valign="middle" class="style2">6</TD>
        <TD align="center" valign="middle" class="style2">0</TD>
        <TD align="center" valign="middle" class="style2">6</TD>
</TR>
<TR>
        <TD align="center" valign="middle" class="style2">2</TD>
        <TD align="center" valign="middle" class="style2">8</TD>
        <TD align="center" valign="middle" class="style2">3</TD>
        <TD align="center" valign="middle" class="style2">3</TD>
        <TD align="center" valign="middle" class="style2">5</TD>
</TR>
</TABLE>

这是你要的效果吧

论坛徽章:
0
10 [报告]
发表于 2008-09-27 06:26 |只看该作者
rowspan等于记录数就可以了,没有营养
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP