2017-02-21 12 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) ** работает отлично и возвращает выбранные значения, но проблема в том, что запрос не принимает эту переменную и сравнивает, я не знаю, почему и как исправить эту проблему –

 Смежные вопросы

  • Нет связанных вопросов^_^