2015-06-26 46 views
-1

我有两个变量$ faceplateInstalled和$ faceplateExists,我把它们打印成两列删除重复行,如果两个变量匹配PHP

Faceplate Exists Faceplate Instaled 
1       1 
1       0 
1       1 
0       0 
1       1 
1       0 
1       1 
1       1 
0       0 
0       0 
1       0 

有没有一种方法,以消除在那里我一个相同的1和1项行?

这是一个查询使用:

"SELECT F.id AS faceplateId, PR.premiseId, ComposeAddressFromPAF(PR.postAddressId) AS fullAddress, " . 
      " IF(F.id IS NOT NULL, 1, 0) AS faceplateExists, " . 
      " IFNULL(F.installed, 0) AS faceplateInstalled, " . 
      " PR.siteId, S.NAME AS siteName " . 
      "FROM ho_crm_premise PR " . 
      " LEFT JOIN ho_faceplate F ON F.premiseId = PR.premiseId " . 
      " INNER JOIN bcube_site S ON S.SITEID = PR.siteId " . 
      "WHERE S.SITEID"; 

,这是全功能

function GetFaceplates($siteId) 
    { 
     $sSql = 
      "SELECT F.id AS faceplateId, PR.premiseId, ComposeAddressFromPAF(PR.postAddressId) AS fullAddress, " . 
      " IF(F.id IS NOT NULL, 1, 0) AS faceplateExists, " . 
      " IFNULL(F.installed, 0) AS faceplateInstalled, " . 
      " PR.siteId, S.NAME AS siteName " . 
      "FROM ho_crm_premise PR " . 
      " LEFT JOIN ho_faceplate F ON F.premiseId = PR.premiseId " . 
      " INNER JOIN bcube_site S ON S.SITEID = PR.siteId " . 
      "WHERE S.SITEID"; 

     if($siteId) 
     { 
      $sSql .= " AND PR.siteId = " . $siteId . " "; 
     } 

     $pResult = $this->ExecuteSQL($sSql); 
     return $pResult; 
    } 


$db = new DatabaseInfinity(); 

$action = $_REQUEST["action"]; 

//$action = "SEARCH"; // TEMPORARY 
$siteId = $_REQUEST["siteId"]; 

if($action == "SEARCH") 
{ 
    $faceplates = $db->GetFaceplates($siteId); 

    while($faceplate = FetchObject($faceplates)) 
    { 
     $tpl->newBlock("FACEPLATE"); 
     $tpl->assign("ID", $faceplate->faceplateId); 
     $tpl->assign("PREMISEID", $faceplate->premiseId ); 
     $tpl->assign("ADDRESS", $faceplate->fullAddress); 
     $tpl->assign("SITEID", $faceplate->siteId); 
     $tpl->assign("SITENAME", $faceplate->siteName); 
     $tpl->assign("FEXISTS", $faceplate->faceplateExists); 
     $tpl->assign("FINSTALED", $faceplate->faceplateInstalled); 
    } 
} 
+0

数据存储为数组?或者作为一个字符串......? –

+0

欢迎来到Stack Overflow!这个问题在信息上有点短暂。你可以分享你的尝试,以及你遇到了什么问题? –

+0

这会让所有人都猜到,*不是Sam吗?* - @JayBlanchard现在已经发布了一个答案,并且在事实*之后获得了某些内容*。 Oufff! –

回答

0

根据您的后期编辑,你可以改变你的查询,包括条件faceplateExists <> faceplateInstalled在外部查询到得到如下所需的结果

SELECT * FROM 
(
SELECT F.id AS faceplateId, PR.premiseId, 
ComposeAddressFromPAF(PR.postAddressId) AS fullAddress, " . 
      " IF(F.id IS NOT NULL, 1, 0) AS faceplateExists, " . 
      " IFNULL(F.installed, 0) AS faceplateInstalled, " . 
      " PR.siteId, S.NAME AS siteName " . 
      "FROM ho_crm_premise PR " . 
      " LEFT JOIN ho_faceplate F ON F.premiseId = PR.premiseId " . 
      " INNER JOIN bcube_site S ON S.SITEID = PR.siteId " . 
      "WHERE S.SITEID 
) XXX WHERE faceplateExists <> faceplateInstalled; 
+0

i'v完成了左加入,所以我没有一张桌子在哪里可以做到这一点,而且我不想删除记录我只想不显示他们 –

+0

请不要在注释中转储代码 –

+0

@MilosMarkovic,应该让人们早点知道,反正如果有帮助,请参阅编辑。 – Rahul