这么的嵌套查询,为什么查不到数据

php中文网
发布: 2016-06-13 10:34:46
原创
1096人浏览过

这样的嵌套查询,为什么查不到数据
数据表“Product”的结构和数据:



PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->include_once('conn.php');$result = mysql_query("SELECT p_class FROM Product group by p_class limit 40");//第一查询,已经能成功获得数据 mysql_data_seek($result, 0);    while ($row=mysql_fetch_row($result))    {      for ($i=0; $i<mysql_num_fields($result); $i++ )      {       $tmp=$row[$i]; //把查询结果赋值为新变量:$tmp       echo $tmp;//这里已经可以在web段显示正确的字段内容       $result2 = mysql_query("SELECT * FROM Product where p_class=$tmp limit 0,4");//开始嵌套查询       while ($row=mysql_fetch_row($result2))    {                echo $row['pic'];     //这里查不到数据            echo $row['p_class']; //同上            echo $row['p_name'];  //同上        }      }     }   mysql_free_result($result);mysql_free_result($result2);mysql_close($conn);
登录后复制


以上代码,循环次数已经正确,第一查询也是正确的,就是第二查询没数据。

------解决方案--------------------
你在while 里 $row=然后又 $row= ....第2个 $row 修改成 $row2=后面的保持一致,先这么改吧,我还没仔细看你代码。
------解决方案--------------------
这个跟你刚的问题是一样的
mysql_fetch_row
需要修改成 mysql_fetch_assoc()

一般 我们都返回关联数组
------解决方案--------------------
你这个使用的是
关联数组
echo $row['pic']; //这里查不到数据
echo $row['p_class']; //同上
echo $row['p_name']; //同上

所以你得返回关联数组 才能对上号嘛。。。如果你不是很明白可以将返回结果print_r 看看结构就知道了。

一般返回的都是关联数组,这样比较容易写代码.倒不是说只推荐,这个要看实际情况,大多数时候我们都是使用关联数组要多些.当然你也可以使用mysql_fetch_array这样返回了两种格式....
相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号