2017-06-08 73 views
-1

2個相關的SQL查詢之間有一個MySQL數據庫和JavaScript,使用3依賴下拉列表如何RO單獨使用PHP和MySQL

的問題是從數據庫中選擇數據,並在谷歌地圖上顯示一個PHP代碼我有2個SQL查詢,其中一個取決於另一個的結果。

我需要爲了從第一SQL查詢得到的只是一個結果在第二個SQL查詢比較。

SQL查詢#1:

<!-- the below part of code work as it should --!> 
<!--create dropdown list site names--> 

<form method ="post" action ="" name="submit_form"> 
     <table border="0" width="30%"> 
      <tr> 
       <td>Site Name</td> 
       <td>Owner Name</td> 
       <td>Company Name</td> 
       <td>Subcontractor Name</td> 
      </tr> 
      <tr> 
       <td><select id="site_name" name = "site_name"> 
         <option value="">Select Site</option> 
       <?php 


        $query_site_name =$wpdb->get_results("select DISTINCT 
         i.siteNAME, 
         i.ownerID, 
         i.companyID, 
         o.ownerNAME, 
         x.companyNAME 
         from site_info i 
         LEFT 
         JOIN owner_info o 
         on i.ownerID = o.ownerID 
         LEFT 
         JOIN company_info x 
         on i.companyID = x.companyID 
         "); 
         foreach($query_site_name as $row) 
         { 
         echo "<option value = '".$row ->ownerID.", ".$row ->companyID.",".$row ->ownerNAME.",".$row ->companyNAME.",".$row ->siteNAME."'>".$row->siteNAME."</option>"; 

         //echo "<option value = ' ".$row ->ownerNAME.",".$row ->companyNAME.",".$row ->siteNAME."'>".$row->siteNAME."</option>"; 


        var_dump($query_site_name); 
         } 

       ?> 

       </select></td> 

其中在下面的SQL查詢,可變$site_name會從第一SQL查詢的結果。

SQL查詢#2:

$sql = $wpdb->prepare("select i.siteID 
    , i.siteNAME 
    , i.equipmentTYPE 
    , c.latitude 
    , c.longitude 
    , c.height 
    , o.ownerNAME 
    , o.ownerCONTACT 
    , x.companyNAME 
    , y.subcontractorCOMPANY 
    , y.subcontractorNAME 
    , y.subcontractorCONTACT 
    from site_info i 
    LEFT 
    JOIN owner_info o 
    on i.ownerID = o.ownerID 
    LEFT 
    JOIN company_info x 
    on i.companyID = x.companyID 
    LEFT 
    JOIN subcontractor_info y 
    on i.subcontractorID = y.subcontractorID 
    LEFT JOIN site_coordinates2 c 
    on i.siteID=c.siteID 
    where 
    i.siteNAME = %s 
    AND 
    o.ownerNAME = %s 
    AND 
    x.companyNAME = %s 
    ",$site_name,$owner_name,$company_name); 

$query_submit =$wpdb->get_results($sql, OBJECT); 

    echo "<br>"; 
    echo "<br>"; 
echo $sql; 

enter image description here

,因爲它顯示了圖像中的第一個變量有很多值,其中我想是爲了顯示標記隻字Bsalim在地圖上。

回答

0

我不知道是否回答你的問題,但爲什麼一旦你從第一個查詢得到的結果不應用一個正則表達式趕上只是你想要的名稱(應該有對數據庫結果的模式爲site_name)然後當你執行第二個查詢,你只需輸入正則表達式的結果?

如果需要在第二個查詢,您可以搜索喜歡%Bsalim%部分的名稱。

希望它有幫助。

+0

我的問題是我怎麼可以只選擇第一個查詢所需的值而不選擇包括大廳值? –

+0

最好的解決辦法從正從列中的信息傳遞(假設在該列的信息爲圖案,讓你能夠得到的所有預期的結果和外界對待它),因爲從我的POV所有塔上的信息將被檢索。在這種情況下,您不能僅獲得列的部分字符串。用正則表達式得到列後,您可以只提取「Bsalim」,並將其用於下一個查詢。 –