php mysql 读取数据循环

来源:百度知道 编辑:UC知道 时间:2024/06/03 21:51:32
用while($row = mysql_fetch_array($result))获取数据。其中的SQL要查询两张表。A表中返回很多结果,而B表中只返回一条数据。举例来说。B表中是商品的类型,A表中是该类型下的产品。输出结果是一张表格。表格标题就是商品的类型名。下面是很多具体的商品。
问题来了:由于B表中我只需要一条数据,如果放在while循环里,就必须执行$product_category = $row[category_name]这样就会执行很多次。而每次执行的结果都是一样的,我觉得这样很浪费。而如果我放在while循环外是根本不能获得查询结果的。
请问:如何让while循环里只执行一次,或者while循环外怎么获取查询数据?

在循环外设置一个标志变量$flag=false;
在循环里
if($flag){return;}else{$flag=true;}

用嵌套循环

$exec0="select * from 表B";
$result0=mysql_query($exec0);
while($rs0=mysql_fetch_object($result0))
{

$category_name=$rs0->category_name;
echo $category_name."<br><br><br>"; //输出B表中的商品类型
$exec1="select * from 表A where category_name=".$category_name; //查询条件设为A表中的商品类型等于B表中的商品类型
$result1=mysql_query($exec1);
while($rs1=mysql_fetch_object($result1))
{echo $rs1->product_category."<br>"; } //循环输出A商品中属于B表商品类型的商品名

}

可以修改sql语句
比如:
$sql = "SELECT A.*,B.category_name FROM A,B WHERE A.categoryid = B.categoryid GROUP BY A.id";