Неизвестный столбец «значение» в «где предложение» - PullRequest
0 голосов
/ 11 мая 2018

Я просмотрел каждый пост и попробовал несколько рекомендаций, но ничего не работает.Мой код был в порядке - но Gravity Forms произвел обновление и испортил таблицы базы данных, из которых извлекались данные, поэтому я отредактировал это, но данные все еще не извлекаются должным образом, и я получаю ошибку: Неизвестный столбец 'значение' в 'где пункт 'когда я включаю отладку.

Кто-нибудь может понять, почему я получаю эту ошибку?На странице должен быть получен список членов команды, основанный на значении, которое они ввели в поле формы гравитации ... все было в порядке до обновления.

Вот код, который вызывает проблемы, в частности, строки $ get_team_ids и $ user_email, похоже, являются нарушителями.

function showstep1(){
$concate='';
$postid = get_the_ID();
$post_7 = get_post($postid); 

if( is_mr() ) {
//print_r($post_7->post_title);
 }
//echo $postid;

global $wpdb;
$table_name = $wpdb->prefix . "walking_steps";
$table_name1 = $wpdb->prefix . "users";
$table_name2 = $wpdb->prefix . "gf_entry_meta";
$get_team_ids = $wpdb->get_results("SELECT * FROM $table_name2 where value = '" .$post_7->post_title. "'");

 if( is_mr() ) {
     //print_r($get_team_ids);
     //print_r( $getuserids );
 }

 $users = array();
 if(!empty($get_team_ids)){
 foreach ($get_team_ids as $idlead) {
        $user_email = $wpdb->get_var("SELECT value FROM wp_gf_entry_meta WHERE form_id=4 AND lead_id=$idlead->lead_id AND field_number=3");
        if( empty( $user_email ) ) {
        $user_email = $wpdb->get_var("SELECT value FROM wp_gf_entry_meta WHERE form_id=1 AND lead_id=$idlead->lead_id AND field_number=2");
        }
        if( $user_email ) $users[] = $user_email;

      //$concate .= $idlead->lead_id.',';
 }
 $concate = substr($concate, 0,-1);
 //echo $concate;

}

1 Ответ

0 голосов
/ 11 мая 2018

Неизвестный столбец 'value' в 'предложении WHERE' обычно указывает на то, что столбец не существует в таблице.

Вы говорите, что это также происходит с другой строкой 'user_email', которая также пытается снова выбрать столбец 'value', если это вызывает у вас проблему, имя столбца неверно, как может показаться.

Это правильный заголовок для столбца?Похоже на неоднозначное имя.Попробуйте переименовать столбец 'value' во что-то менее общее или измените предложение where на

"WHERE table_name2.value ="

Если это не заголовок столбца, замените 'value' направильный заголовок столбца

РЕДАКТИРОВАТЬ: правильный код ниже в соответствии с комментариями

Заменить все экземпляры 'value' на 'meta_value'

...