2017-02-21 2 views
0

データベースから取得した値を含む4つのドロップダウンリストがあり、これらの値の選択に基づいて2番目のSQLクエリを実行して関連するすべてのデータを表示します選択。ここで私のコードでSQLクエリが機能しなくなるエラーが発生します

私はその変数の範囲に問題があることを知っていますが、それを修正する方法はわかりません。

例:私が持っている変数ISSET場合は、この変数はを使用してコードの先頭にチェックされている

<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>"; 
        } 
      ?> 

ドロップダウンリストで使用される$ SITE_NAME

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

この変数は、ユーザー選択をMYSQLデータベースのフィールド名に関連付けるために、SQLクエリで比較する必要があります。

$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)**正常に動作し、選択された値を返しますが、問題はクエリがこの変数を取らず、比較した理由とその問題を解決する方法がわからないということです –

関連する問題