假设我有两个类似这样的 mysql 查询
if(!empty($company))
{
$q1="SELECT * FROM TABLE1 WHERE company='$company'";
}
else
{
$q1="SELECT * FROM TABLE1;
}
$r1=mysqli_query($q1);
if(!empty($color))
{
$q2="SELECT * FROM TABLE1 WHERE color='$color'";
}
else
{
$q2="SELECT * FROM TABLE1;
}
$r2=mysqli_query($q2);
在显示结果时,我尝试比较 pid(一个 auto_incrementing 主键)如果
if($r1['pid]==$r2['pid])
{
/* display the contents */
}
但显然这将不起作用,因为如果 pid 不相等,则不会显示任何内容,而且两者都不会以相同的速度递增,r1 的 pid 的下一个结果可以是 23,而在 r2 中它将只有 12,这没有任何东西显示。结果较少的查询将使过滤器明显起作用,如何在显示结果的while循环的一个周期内将较小的pid设置为等于较大的pid?如果可以做到这一点,那么我想我的问题会解决吗?
我怎样才能做到这一点?
我只是想显示两个查询共有的结果。
PS:这些查询是动态生成的,因此如果 $color 或 $company 中的任何一个为空,那么将从表中选择所有内容。
更新*示例*
r1 返回这个
pid company color
1 acer red
3 hp red
5 logitech red
6 compaq red
7 microsoft red
8 lenovo red
AND r2 返回这个
pid company color
5 logitech red
6 compaq red
7 microsoft red
13 nvidia red
然后从上面的结果我们看到 pid 5,6,7 在 r1 和 r2 中都存在,如何显示这些 pid 的所有列