[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка массива на наличие значений
DarkGuy
Добрый день!
Делаю Фильтр поиска.

Хочу, чтобы после выбора оставался выбранным выбранный вариант (прошу прощения за тавтологию)
Не остается.
Проблема вот здесь:
   if(in_array($conditions. $row['city'])){
echo"<option value=\"".$row['city']."\" selected=\"selected\"> ".$row['city']."</option>";
} else {
echo"<option value=\"".$row['city']."\"> ".$row['city']."</option>";
}


Пишет массив пустой

Warning: Wrong parameter count for in_array()

Весь код

$conditions = array();
echo"<form method=\"POST\">";
$city = isset($_POST["citying"]) ? $_POST["citying"] : '';
if($city != ''){ $conditions[] = "`city` = '".addslashes($city)."'"; }
echo"город <select name=\"citying\" onchange=\"this.form.submit();\"> ";
$query = "select id, city from tb_forum GROUP BY `city`";
$sql = mysql_query($query) or die(mysql_error());
while ($row=mysql_fetch_array($sql))
{


if(in_array($conditions. $row['city'])){
echo"<option value=\"".$row['city']."\" selected=\"selected\"> ".$row['city']."</option>";
} else {
echo"<option value=\"".$row['city']."\"> ".$row['city']."</option>";
}
}

echo"</select><br>";




Спустя 12 минут, 15 секунд (21.02.2012 - 18:21) walerus написал(а):
in_array($conditions, $row['city'])


Запятая там должна быть, а не точка.

Спустя 29 минут, 53 секунды (21.02.2012 - 18:51) DarkGuy написал(а):
Цитата (walerus @ 21.02.2012 - 15:21)
in_array($conditions, $row['city'])


Запятая там должна быть, а не точка.

поменял, выводит
Warning: in_array() [function.in-array]: Wrong datatype for second argument in

Спустя 4 часа, 38 минут, 45 секунд (21.02.2012 - 23:30) DarkGuy написал(а):
Совершенно не понимаю почему

Спустя 4 минуты, 45 секунд (21.02.2012 - 23:35) Winston написал(а):
Скорее всего ты перепутал порядок переданных аргументов в in_array, почитай порядок http://ua2.php.net:8888/manual/ru/function.in-array.php

Спустя 15 минут, 46 секунд (21.02.2012 - 23:51) walerus написал(а):
Winston прав, я чет сразу не заметил
in_array( 'что ищем', 'где ищем' );

Спустя 9 минут, 26 секунд (22.02.2012 - 00:00) Winston написал(а):
Цитата (walerus @ 21.02.2012 - 22:51)
in_array( 'что ищем', 'где ищем' );

Правильно перевести
in_array( 'Иглу', 'В стоге сена' );

:D

Спустя 12 минут, 56 секунд (22.02.2012 - 00:13) walerus написал(а):
Winston
laugh.gif

Спустя 13 часов, 32 минуты, 47 секунд (22.02.2012 - 13:46) DarkGuy написал(а):
Цитата (Winston @ 21.02.2012 - 20:35)
Скорее всего ты перепутал порядок переданных аргументов в in_array, почитай порядок http://ua2.php.net:8888/manual/ru/function.in-array.php

Изменил

 if(in_array($row['city'], $conditions)){
echo"<option value=\"".$row['city']."\" selected=\"selected\"> ".$row['city']."</option>";
} else {
echo"<option value=\"".$row['city']."\"> ".$row['city']."</option>";
}


Не помогло.
Ошибки теперь не выдает..

Выбрал город, через print вывел $conditions

Array ( [0] => `city` = 'Санкт-Петербург' )


---
in_array( 'Иглу', 'В стоге сена' );
user posted image

Спустя 1 час, 23 минуты, 9 секунд (22.02.2012 - 15:09) DarkGuy написал(а):
Может можно это делать другим путем?
побывал

 if(in_array($_POST["citying"] = $row['city'])

Не получилось, каждый элемент selected=\"selected\"

Спустя 2 часа, 37 минут, 49 секунд (22.02.2012 - 17:47) inpost написал(а):
А что это за странная запись у тебя?
`city` = 'Санкт-Петербург' ???
Обычно содержится просто "Санкт-Петербург", а не синтаксис выборки из БД.

Спустя 1 час, 16 минут, 59 секунд (22.02.2012 - 19:04) DarkGuy написал(а):
Это если делать так
print_r ( $conditions);
$conditions = count($conditions) > 0 ? ' WHERE '.implode(' AND ', $conditions) : '';
print_r ( $conditions);

то выводит

Array ( [0] => `city` = 'Санкт-Петербург' )


Если так

$conditions = count($conditions) > 0 ? ' WHERE '.implode(' AND ', $conditions) : '';
print_r ( $conditions);


то

WHERE `city` = 'Санкт-Петербург'





Спустя 2 минуты, 36 секунд (22.02.2012 - 19:06) DarkGuy написал(а):
Прошу, помогите пожалуйста

Спустя 7 часов, 4 минуты, 15 секунд (23.02.2012 - 02:11) DarkGuy написал(а):
решил так
if($_POST["citying"] == $row['city']){
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.