$sql="SELECT advertiser_name from broker_blocked_advertisers where pline=".$pLine." AND bid=".$cNr;
$result=mysqli_query($conn,$sql);
if(mysqli_num_rows($result)>0){
while($row=mysqli_fetch_array($result)){
$s=trim($row['advertiser_name']);
$sql2= "SELECT clientid from rv_clients where clientname='{$s}'";
$result2=mysqli_query($dbc,$sql2);
while($row2=mysqli_fetch_array($result2)){
$sql3= "SELECT campaignid from rv_campaigns where clientid=".$row2['clientid'];
$result3=mysqli_query($dbc,$sql3);
while($row3=mysqli_fetch_array($result3)){
$sql4= "SELECT bannerid from rv_banners where campaignid=".$row3['campaignid'];
$result4=mysqli_query($dbc,$sql4);
while($row4=mysqli_fetch_array($result4)){
$block_adr[]= $row4['bannerid'];
}
}
}
}
}
任何人都建议我在单个查询中简化以上代码???
上面的代码确实是我认为的错误方法,请帮助缩短它的时间。
代码说明:在这里,我从sql表中获得一个值,并使用该值前进到另一个查询,依此类推。
提前致谢
最佳答案
修改后的查询和脚本:
$sql = "SELECT d.bannerid
FROM broker_blocked_advertisers a
INNER JOIN rv_clients b ON a.advertiser_name = b.clientname
INNER JOIN rv_campaigns c ON b.clientid = c.clientid
INNER JOIN rv_banners d ON c.campaignid = d.ampaignid
WHERE a.pline=".$pLine." AND a.bid=".$cNr;
$result=mysqli_query($dbc,$sql);
while($row=mysqli_fetch_array($result))
{
$block_adr[]= $row['bannerid'];
}