2015-01-06 2 views
-1

Я следующий массив создан:Mysql выбор значение из массива

$selectedvillas[] = array (
    'villaname' => $row1['name'] 

и с

print_r($selectedvillas); 

Он печатает:

Array ([0] => Array ([villaname] => Villa 1) [1] => Array ([villaname] => Villa 2) [2] => Array ([villaname] => Villa 3) [3] => Array ([villaname] => Villa 4) [4] => Array ([villaname] => Villa 5) [5] => Array ([villaname] => Villa 6) [6] => Array ([villaname] => Villa 7) [7] => Array ([villaname] => Villa 8) [8] => Array ([villaname] => Villa 9) [9] => Array ([villaname] => Villa 10) [10] => Array ([villaname] => Villa 11) [11] => Array ([villaname] => Villa 12)) 

Я хочу, чтобы выбрать из MySQL все выше villaname из массива, где вилла представляет собой вышеупомянутую массив с вилланами

$query_reviews= "SELECT * FROM reviews where villa IN $selectedvillas order by dateofreview DESC"; 
+1

Вы должны использовать функцию PHP explode для построения строки «$ list = explode (',', $ selectedvillas); После: $ query_reviews = "SELECT * FROM отзывы, где вилла IN ($ list) упорядочивает по дате просмотра DESC"; –

ответ

0

Вы должны отформатировать массив в строку.

Во-первых, кажется, что вы могли бы сделать вашу работу легче строить свой массив более просто, например, так:

$selectedvillas[] = $row1['name'];

Тогда вы можете использовать implode() легко форматировать массив в запятую строка.

Я использую это довольно часто:

$query_reviews= "SELECT * FROM reviews 
WHERE villa IN ('" .implode("', '", $selectedvillas) . "') order by dateofreview DESC"; 

Примечание: Эти одиночные кавычки легко пропустить, но они очень важны.

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