2012-01-10 2 views
0

Это мой текущий код:Получить массив всех совпадений в запросе mysql?

$wonAwards = $altdb->get_var("SELECT achievement_id 
           FROM user_1 
           WHERE isTold='false'"); 

В настоящее время $wonAwards устанавливается равным первому результату запроса SQL. Можно ли установить $wonAwards равным массиву всех результатов запроса?

////////////////// Полнофункциональный

function the_header_function(){ //called when wordpress header is loaded 
    if (is_user_logged_in()){ //checks if user is logged in 
     global $altdb; //wp global database object 
     $user_info = wp_get_current_user(); 
     $wonAwards = $altdb->query("SELECT achievement_id FROM user_".$user_info->ID." WHERE isTold='false'"); //query 
     if(is_array($wonAwards)) $hello='true'; 
     if(!is_array($wonAwards)) $hello='false'; 
     if($wonAwards != ''){ 
      echo "<script>jQuery(document).ready(function(){alert('".$hello."');});</script>"; 
     } 
    } 
} 

Что касается проверки того, что результат моего запроса был, я просто изменил это:

echo "<script>jQuery(document).ready(function(){alert('".$hello."');});</script>"; 

к этому:

echo "<script>jQuery(document).ready(function(){alert('".$wonAwards."');});</script>"; 
+1

Мы понятия не имеем, что такое $ altdb' – zerkms

+0

$ altdb - это просто объект, содержащий информацию о базе данных, позволяющую мне установить соединение и запустить запрос. Мне просто нужно знать, как получить массив в результате запроса SELECT –

+0

@ShahmeerNavid: Обычно результат запроса представляет собой массив, и ваш оператор должен работать, проблема, я думаю, связана с 'get_var', возможно, это получая только первый элемент массива. Если у вас есть код, отправьте его, а также, как вы знаете, '$ wonAwards' содержит только первый результат, как вы его протестировали? –

ответ

1

Ну, в соответствии с Documentation Here, get_var предоставит вам один повтор sult и query даст вам количество результатов.

То, что вы действительно хочет (получить все результаты) могут быть достигнуты с помощью метода get_results, так что вы должны написать:

$wonAwards = $altdb->get_results("SELECT achievement_id 
           FROM user_1 
           WHERE isTold='false'"); 

Попробуйте и сообщите нам, если это работает, надеюсь, что это полезно.

+0

Спасибо, что отлично работает! –

+0

Добро пожаловать, документация - это всегда путь :) –

0

Как я понимаю, что вы хотите установить массив вместо равен
Hop е это будет работать:

$wonAwards = $altdb->get_var("SELECT achievement_id 
          FROM user_1 
          WHERE isTold 
          IN ('false', 'true', 'another_value', 'some_other')"); 

Edit: для @Shahmeer Навид
если у вас есть какие-то данные в массиве, как

$array = array("data1", "data2", "data3"); 
$implode = implode("', '", $array); 

//Output or $implode 
data1', 'data2', 'data3 

//apply on query 
$wonAwards = $altdb->get_var("SELECT achievement_id 
          FROM user_1 
          WHERE isTold 
          IN ('$implode')"); 

PS Также используйте mysql_real_escape_string() если вы получаете данные из клиент

+0

Не могли бы вы объяснить последнюю строку? в частности, параметры («false», «true», ....) –

+0

, так как я вижу ваш код сейчас, его изменение бит, я не знаю о wordpress, но в соответствии с этим запросом давайте объясним вам –

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