2017-02-21 44 views
0

我有4個下拉列表,其中包括從數據庫中檢索到的值,然後基於這些值的選擇我運行第二個SQL查詢以顯示所有相關數據選擇。其中是我的代碼中的錯誤,使SQL查詢停止工作

我知道它在變量範圍內的問題,但我不知道如何解決它。

例如:我有可變$ SITE_NAME是在下拉列表中

<td><select id="site_name" name = "site_name"> 

      <?php 
      global $site_name; 

       $query_site_name =$wpdb->get_results ("select DISTINCT siteNAME from site_info"); 
        foreach($query_site_name as $site_name) 
        { 
        $site_name = (array)$site_name; 
        echo "<option value = '{".$site_name ['siteNAME']."}'>". $site_name['siteNAME']."</option>"; 
        } 
      ?> 

如果isset這個變量在使用代碼的頂部檢查使用

if(isset($_POST['site_name'])) 
      { 
echo "inside site name"; 
      $site_name=$_POST['site_name']; 
      } 
      else { $site_name=""; } 

然後必須在SQL查詢中比較這個變量,以便將用戶選擇與MYSQL數據庫中的字段名稱相關聯。

$query_submit =$wpdb->get_results (" 
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_coordinates` c 
    on i.siteID=c.siteID 
    where 
    i.siteNAME = '".$site_name."'); 

當我嘗試從數據庫中的一切工作更換$ SITE_NAME

所以我知道問題是在$ site_name變量。

如果任何人都可以幫助我,我將不勝感激。

+0

try var_dum p($ _ POST ['site_name'])檢查真實內容 – scaisEdge

+0

我試過你的答案,它顯示從下拉列表中選擇的值 –

回答

0

它看起來像你沒有關閉查詢。它始於和你與結束。

'".$site_name"' =>'".$site_name"'"

如果不工作,你可以做var_dump($site_name),看看它返回?

而且,請不要將已發佈的值直接插入數據庫中,請先準備查詢,然後將其發送到數據庫

$sql = $wpdb->prepare("select site_info.siteID,site_info.siteNAME ,site_info.equipmentTYPE,site_coordinates.latitude,site_coordinates.longitude,site_coordinates.height ,owner_info.ownerNAME,owner_info.ownerCONTACT,company_info.companyNAME,subcontractor_info.subcontractorCOMPANY,subcontractor_info.subcontractorNAME,subcontractor_info.subcontractorCONTACT from `site_info` 
    LEFT JOIN `owner_info` 
    on site_info.ownerID = owner_info.ownerID 
    LEFT JOIN `company_info` 
    on site_info.companyID = company_info.companyID 
    LEFT JOIN `subcontractor_info` 
    on site_info.subcontractorID = subcontractor_info.subcontractorID 
    LEFT JOIN `site_coordinates` 
    on site_info.siteID=site_coordinates.siteID 
    where 
    site_info.siteNAME = '".$site_name"'"); 

$results = $wpdb->get_results($sql); 
+0

@ Melvin Koopmans抱歉失蹤的報價,但存在,我沒有應付它的* * var_dump($ site_name)**它工作正常,並返回選定的值,但問題是,查詢不需要這個變量和比較我不知道爲什麼以及如何解決這個問題 –

相關問題