如何解决下述两个问题!

cyxin2121921 2009-06-16 03:02:57

上图的红色框中的内容是完全相同的三条记录
属装图号相当于图号的父节点,表中的关联主健为 属装图号和键号两个字段。
从这个图中可以看出,当属装图号=TSK254-11-11-000 键号=2 时候 它的图号为TSK254-11-11-001
当属装图号=TSK254-11-11-001时,它有三条记录,分别为第8/9/10条
当属装图号=TSK254-11-11-000 键号=3 时候 它的图号也为TSK254-11-11-001
当属装图号=TSK254-11-11-001时,它有三条记录,分别为第12/13/14条
其中,8/9/10和12/13/14是对应相同的三条记录,通过程序进行两次查询得到的!
问题一:有无方法通过程序或是别的方法把8/9/10和12/13/14这几条记录显示到一起?实现这样的排列:
8 ……………………
12…………………………

9 ………………
13……………………

10……………………
14……………………
或是实现的时候类似那种去除这种重复的显示方式的?
问题二:当对“领料单位”进行操作的时候,能否实现单击向下箭头就可以现上下自如?或是只是向下操作,在本程序中只能利用鼠标才能操作!
...全文
48 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
v轻扬v 2009-06-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 cyxin2121921 的回复:]
引用 6 楼 daniel75122 的回复:
不好意思,修改不了,第二个内循环有的echo "$arr1[$i][$j] ";应为echo "$arr2[$i][$j] ";


我这些表单中的值都是经过在数据库中读取出来的数据保存到一个二维数组中的,然后显示到了这个表单中的
数据库表中存储的只是一条记录,而在表单中,却有可能(类似图中http://album.hi.csdn.net/views/photo/290520 的情况),出现若干相同的记录项的
不知道这次说明白了没?
[/Quote]
你越说我越糊涂了。
你的问题中不是说“其中,8/9/10和12/13/14是对应相同的三条记录,通过程序进行两次查询得到的!”吗?
所以我说你把这两次查询的结果(每个结果中有三条记录对吧?)分别存入两个二维数组$arr1和$arr2中。
$arr1[0]、$arr1[1]和$arr1[2]是三个一维数组,分别对应三个记录8/9/10,$arr1[0][0]、$arr1[0][1]…$arr1[0][n]、对应记录行8的相应字段。
同理$arr2[0]、$arr2[1]和$arr2[2]是三个一维数组,分别对应三个记录12/13/14
所以有了二维数组,你可以通过$arr1[行标][列标]和$arr2[行标][列标]的方式从结果集中得到你任意你想要的值。不需要再用循环了(我的理解是因为循环取值才使得你得不到你想要的排序结果)。
cyxin2121921 2009-06-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 daniel75122 的回复:]
不好意思,修改不了,第二个内循环有的echo "$arr1[$i][$j] ";应为echo "$arr2[$i][$j] ";
[/Quote]
我这些表单中的值都是经过在数据库中读取出来的数据保存到一个二维数组中的,然后显示到了这个表单中的
数据库表中存储的只是一条记录,而在表单中,却有可能(类似图中http://album.hi.csdn.net/views/photo/290520 的情况),出现若干相同的记录项的
不知道这次说明白了没?
lyyvv 2009-06-16
  • 打赏
  • 举报
回复
看不到图片
v轻扬v 2009-06-16
  • 打赏
  • 举报
回复
不好意思,修改不了,第二个内循环有的echo "$arr1[$i][$j] ";应为echo "$arr2[$i][$j] ";

v轻扬v 2009-06-16
  • 打赏
  • 举报
回复
将两个结果集分别存入两个二维数组中,有了二维数组,你想怎么显示就怎么显示:

function mysql_fetch_all($result)
//此函数代码来自PHP手册
{
while($row=mysql_fetch_array($result)) {
$return[] = $row;
}
return $return;
}

$arr1=mysql_fetch_all($result1);
$arr2=mysql_fetch_all($result2);
for ($i=0;$i<count($arr1);$i++)
{
for ($j=0;$j<count($arr1[$i]);$j++)
{
echo "$arr1[$i][$j] ";
if($j==count($arr1[$i])-1) echo '<br />';
}

for ($j=0;$j<count($arr2[$i]);$j++)
{
echo "$arr1[$i][$j] ";
if($j==count($arr2[$i])-1) echo '<br /><br />';
}
}

tfxg 2009-06-16
  • 打赏
  • 举报
回复
看了好久,大概看明白一點點意思:

1.按 8 12 9 13 10 14 這個順序排列,我認為可以order by 鍵號,圖號 這樣的排序條件解決

2.当对“领料单位”进行操作的时候,能否实现单击向下箭头(向下箭頭是鍵盤的向下鍵?)就可以现上下自如?或是只是向下操作,在本程序中只能利用鼠标才能操作!
程序猿之殇 2009-06-16
  • 打赏
  • 举报
回复
问题1:
相同的记录,没必要再显示出来了,删除就可以了.
将查询出来的数据放到数组里,然后再根据唯一的关键字来确定记录是否相同,如果相同,则删除.
问题2:
是可以的.
可以通过捕捉键盘事件,然后调用同样的函数,完成同样的操作.
cyxin2121921 2009-06-16
  • 打赏
  • 举报
回复
真是不好意思
大家只能通过http://album.hi.csdn.net/views/photo/290520
这个网址看到图片了!
tfxg 2009-06-16
  • 打赏
  • 举报
回复
看不到圖片

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧