一开始我一直没有在意那个id_2的含义。最后还是出现了bug.即如果父类没有子类的情况下,下一个父类的子类的值会成为这一个父类的值,造成错位。

原因是while这个语句,他把所有父类的值取出来,然后把id一一传入province_id.当然也把没有子类的父类给传了进去

然后在子类的whlie循环的时候,由于有些父类没有子类,造成子类根据父类id查找不到相应的值,就造成while里面的条件句mysql_fetch_array的值为false.不执行该循环,直接执行下次循环,也就出现了错位的现象。

解决的方法就是设置id_2这个字段,有子类的父类这个id_2字段将设置为1,而没有子类的字段设置成0。这样就不会搜索到那些没有子类的父类了,顺序也就正常了。当然在添加和删除父类和子类的时候需要进行判断,如果该父类没有子类的话就将id_2设置成0,如果有的话就设置成1。具体方法大家应该都会。数据库的操作而已。

posted on 2007-10-17 11:02  Arcangel  阅读(338)  评论(0编辑  收藏  举报