2017-04-17 92 views
0

我創建了一個查詢來顯示報告。查詢從幾個不同的表中獲取數據是很好的,但我無法弄清楚如何在表中回顯多個匹配值。例如表格vtiger_addisa有多個我需要顯示的新當前值。顯示所有匹配值而不是第一個

$sql = $adb->query("SELECT * 
       FROM vtiger_isa, vtiger_addisa, vtiger_contactdetails 
       WHERE vtiger_isa.relatedclient = vtiger_addisa.addrelatedclient 
       AND vtiger_addisa.addrelatedclient = vtiger_contactdetails.contactid 
       AND vtiger_isa.relatedclient = $relatedclient 
       AND vtiger_isa.policynumber = $policynumber"); 


      //Uncomment lines below for testing sql    
      //echo $sql; 
      //exit; 
      while ($sql->fetchInto($row)) { 
    // Assuming DB's default fetchmode is DB_FETCHMODE_ORDERED 
    echo $row['firstname'] . "\n"; 
    echo $row['lastname'] . "\n"; 
    echo $row['policynumber'] . "\n"; 
    echo $row['newcurrentamount'] . "\n"; 
    echo $row['newcurrentamount'] . "\n"; 
    echo $row['currentamount'] . "\n"; 



    exit; 

} 
+4

您的'exit'語句會在第一次迭代while循環後終止您的腳本,因爲它出現在第一次迭代結束時。因此,以下迭代永遠不會生成,並且只顯示第一條記錄。 – coderodour

+0

@coderodour由於vtiger處理程序工作的方式,這是最終需要的,刪除這意味着它不會停止等待響應,我正在尋找另一種解決方法。 – Diddy

+0

如果你暗示在任何情況下都需要'exit',你只需要將它從'while'循環中移出並放在腳本結尾之前就可以顯示所有記錄。 –

回答

0

使用 '爲' 經營者

select newcurrentamount as a, newcurrentamount as b from vtiger_addisa 

P.S-儘量避免 '*' 和只使用必要的列。

0

您可以獲得如下的多行結果。

global $adb; 
$sql = $adb->query("SELECT * FROM vtiger_isa, vtiger_addisa, vtiger_contactdetails 
    WHERE vtiger_isa.relatedclient = vtiger_addisa.addrelatedclient 
    AND vtiger_addisa.addrelatedclient = vtiger_contactdetails.contactid 
    AND vtiger_isa.relatedclient = $relatedclient 
    AND vtiger_isa.policynumber = ?"); 

    $params = array($policynumber); 
    $result = $adb->pquery($query, $params); 
    $noOfRows = $db->num_rows($result); 

    for($i=0; $i<$noOfRows; ++$i) { 
     $firstname = $db->query_result($result, $i, "firstname"); 
     $lastname = $db->query_result($result, $i, "lastname"); 
     $policynumber = $db->query_result($result, $i, "policynumber"); 
     $newcurrentamount = $db->query_result($result, $i, "newcurrentamount"); 
     $currentamount = $db->query_result($result, $i, "currentamount"); 
    } 
相關問題