0000
作家
作家
  • 铜币143枚
  • 威望34点
  • 贡献值1点
阅读:755回复:7

[求助]请看看这到底错在哪?偶已经晕了,PHP循环查询数据库

楼主#
更多 发布于:2004-07-28 14:41

<?php
//sort.php
//三重循环,问题出在第二重

//显示现有类
include ("conn.php");//数据库连接文件

//查询类型,TYPE,数据库中表名为CLASS1
$query1 = "select * from class1";
$result1 = mysql_query($query1);
$rows1 = mysql_num_rows($result1);
if($rows1 == 0)
{
 //没有建立类型
 echo "no sorts";
 exit();
}
for($i=0;$i<$rows1;$i++)
{
 //class 1
 @mysql_data_seek($resutl1,$i);
 $data1 = @mysql_fetch_array($result1);
 $id1 = $data1['id'];
 $name1 = $data1['name'];
 echo "type:".$name1."<br>";

 //class 2
 $query2 = "select * from class2 where parent_id=".$id1;
 $result2 = mysql_query($query2);
 $rows2 = mysql_num_rows($result2);
 echo $rows2;//显示为2,说明找到两行数据
 if($rows2 == 0)
 {
   echo "no big sorts";
 }
 else
 {
 for($j=0;$j<$rows2;$j++);
 {    //这段循环只执行了一次?
   @mysql_data_seek($result2,$j);
   $data2 = @mysql_fetch_array($result2);
   $id2 = $data2['id'];
   $name2 = $data2['name'];
   echo " bigclass:".$name2."<br>";
   echo $j;//j=2 ? why?

 //class3
   $query3 = "select * from class3 where parent_id=".$id2;
   $result3 = mysql_query($query3);
   $rows3 = mysql_num_rows($result3);
   if($rows3 == 0)
   {
   echo "no smallsorts";
   }
   else
   {
     for($r=0;$r<$rows3;$r++)
     {
      @mysql_data_seek($result3,$r);
      $data3 = @mysql_fetch_array($result3);
      $id3 = $data3['id'];
      $name3 = $data3['name'];
      echo "  smallclass:".$name3."<br>";
     }
    }
   }
 }
}
?>

数据库结构如下:

# phpMyAdmin SQL Dump
# version 2.5.5
# http://www.phpmyadmin.net
#
# 主机: localhost
# 生成日期: 2004 年 07 月 28 日 14:36
# 服务器版本: 4.0.17
# PHP 版本: 4.3.4
#
# 数据库 : `zq`
#

# --------------------------------------------------------

#
# 表的结构 `class1`
#

CREATE TABLE `class1` (
  `id` int(20) NOT NULL auto_increment,
  `name` char(50) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;

#
# 导出表中的数据 `class1`
#

INSERT INTO `class1` VALUES (1, 'type');
INSERT INTO `class1` VALUES (2, 'type2');

# --------------------------------------------------------

#
# 表的结构 `class2`
#

CREATE TABLE `class2` (
  `id` int(20) NOT NULL auto_increment,
  `parent_id` int(20) NOT NULL default '0',
  `name` char(50) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;

#
# 导出表中的数据 `class2`
#

INSERT INTO `class2` VALUES (1, 1, 'bigclass');
INSERT INTO `class2` VALUES (2, 1, 'bigclass2');

# --------------------------------------------------------

#
# 表的结构 `class3`
#

CREATE TABLE `class3` (
  `id` int(20) NOT NULL auto_increment,
  `parent_id` int(20) NOT NULL default '0',
  `name` char(50) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=4 ;

#
# 导出表中的数据 `class3`
#

INSERT INTO `class3` VALUES (1, 1, 'smallclass');
INSERT INTO `class3` VALUES (2, 1, 'smallclass2');
INSERT INTO `class3` VALUES (3, 2, 'class3');

目的:通过循环查找并显示三级分类,各类有如下从属关系: class1>class2>class3

现在的情况显示如下:

type:type
2 bigclass:bigclass
2  smallclass:smallclass(说明:第二循环变量$j的值,发果正常这里应该是0才对,可这里是2)
  smallclass:smallclass2
type:type2
0no big sorts

数据库中测试用的数据:
class1两个,分别为type 和 type2
class2两个,分别为bigclass 和 bigclass2,均从属于type
class3两个,分别为smallclass 和 smallclass2,均从属于bigclass

--------------------
[em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074]
[em074]趴在楼下的背上睡得呼呼的Zzzzzz............[em074]
[em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074]

[a=http://home.itdrp.com/akayi/]感情欠费中
           爱情停机中
                       工作寻找中[/a]
[ 2004-07-28 14:53:40 0000 修改 ]
.--. |o_o | |:_/ | // \ \ (| | ) /'\_ _/`\ \___)=(___/
guagua
著名写手
著名写手
  • 铜币10枚
  • 威望2点
  • 贡献值0点
1C#
发布于:2004-07-28 15:48
Re:[求助]请看看这到底错在哪?偶已经晕了,PHP循环查询数据库
www.csdn.net
你贴到那,十分钟之内就有答案,那是中国最大的程序员论坛 -------------------- 呵呵哈哈
 


 
呵呵哈哈 [img]http://www.tvb.com.cn/photo/model/medias/2001-11-13_40642.jpg[/img]     [img]http://bbs.btbbt.com/customavatars/776337.gif[/img]
southeast
著名写手
著名写手
  • 铜币0枚
  • 威望0点
  • 贡献值0点
2C#
发布于:2004-07-28 16:38
Re:[求助]请看看这到底错在哪?偶已经晕了,PHP循环查询数据库
粗心啊


细心的人不懂php的人知道一点点程序结构的人都能看出来
for($j=0;$j<rows2:$j++);
因为$rows2得到的结果是2,所以上面句子运行结果就是$j=2;

错误就在于你多写了一个";"

去掉
结果
type:type
2 bigclass:bigclass
0 smallclass:smallclass
smallclass:smallclass2
bigclass:bigclass2
1 smallclass:class3
type:type2
0no big sorts
-------------------- 好好吃饭,天天睡觉
努力赚钱,娶个老婆
[img]http://www.wait4c.com/bbs/userfiles/2196/2005051614543457820.jpg[/img]
southeast
著名写手
著名写手
  • 铜币0枚
  • 威望0点
  • 贡献值0点
3C#
发布于:2004-07-28 16:43
Re:[求助]请看看这到底错在哪?偶已经晕了,PHP循环查询数据库
这段代码应该好好的简化简化 -------------------- 好好吃饭,天天睡觉
努力赚钱,娶个老婆
[img]http://www.wait4c.com/bbs/userfiles/2196/2005051614543457820.jpg[/img]
0000
作家
作家
  • 铜币143枚
  • 威望34点
  • 贡献值1点
4C#
发布于:2004-07-28 16:44
Re:[求助]请看看这到底错在哪?偶已经晕了,PHP循环查询数据库
[em154]被骂了.................
偶下次一定细心一定细心[em061]
楼上表生气啊表生气,喝茶喝茶[em126] -------------------- [em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074]
[em074]趴在楼下的背上睡得呼呼的Zzzzzz............[em074]
[em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074]

[a=http://home.itdrp.com/akayi/]感情欠费中
           爱情停机中
                       工作寻找中[/a]
.--. |o_o | |:_/ | // \ \ (| | ) /'\_ _/`\ \___)=(___/
0000
作家
作家
  • 铜币143枚
  • 威望34点
  • 贡献值1点
5C#
发布于:2004-07-28 16:45
Re:[求助]请看看这到底错在哪?偶已经晕了,PHP循环查询数据库
忘了说谢谢了,谢谢谢谢[em087] -------------------- [em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074]
[em074]趴在楼下的背上睡得呼呼的Zzzzzz............[em074]
[em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074]

[a=http://home.itdrp.com/akayi/]感情欠费中
           爱情停机中
                       工作寻找中[/a]
.--. |o_o | |:_/ | // \ \ (| | ) /'\_ _/`\ \___)=(___/
0000
作家
作家
  • 铜币143枚
  • 威望34点
  • 贡献值1点
6C#
发布于:2004-07-28 16:57
Re:[求助]请看看这到底错在哪?偶已经晕了,PHP循环查询数据库
这段代码应该好好的简化简化

--------------------
好好吃饭,天天睡觉
努力赚钱,娶个老婆

偶也觉得挺烦的,自己都懒得看,简化办法还在想[em101][em100]

--------------------
[em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074]
[em074]趴在楼下的背上睡得呼呼的Zzzzzz............[em074]
[em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074]

[a=http://home.itdrp.com/akayi/]感情欠费中
           爱情停机中
                       工作寻找中[/a]
[ 2004-07-28 16:58:17 0000 修改 ]
.--. |o_o | |:_/ | // \ \ (| | ) /'\_ _/`\ \___)=(___/
southeast
著名写手
著名写手
  • 铜币0枚
  • 威望0点
  • 贡献值0点
7C#
发布于:2004-07-28 16:59
Re:[求助]请看看这到底错在哪?偶已经晕了,PHP循环查询数据库
[em154]被骂了.................
偶下次一定细心一定细心[em061]
楼上表生气啊表生气,喝茶喝茶[em126]

--------------------
[em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][em074][e..
言重了,呵呵。我没有生气,哦,也没'骂'你哈。
没的茶喝的,只有矿泉水,喝喝 -------------------- 好好吃饭,天天睡觉
努力赚钱,娶个老婆
[img]http://www.wait4c.com/bbs/userfiles/2196/2005051614543457820.jpg[/img]
游客

返回顶部