[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Поиск ключа в массиве
savelikan
Доброе времени суток!
У меня генерируется HTML код с выбором значений:

<INPUT TYPE='hidden' NAME='usergroup' VALUE='true'>
<INPUT
TYPE='checkbox' NAME='group1'>Химия<BR>
<INPUT
TYPE='checkbox' NAME='group5'>Биология<BR>
<INPUT
TYPE='checkbox' NAME='group6'>География<BR>


Мне нужно узнать информацию о группе, но для начало нужно узнать какие именно ид (group5) нужно искать. Конечно, можно проверить каждую записть в таблице на наличия соответствующего массива, но ето лишняя нагрузка...



Спустя 22 минуты, 50 секунд (21.06.2011 - 10:02) Renden написал(а):
savelikan
Что-то я ничего непонял, где тебе нужно узнать, что искать?..нипанятно.
Из чистого html можно что-то узнать посредством javascript только, обьясни нормально что тебе нужно сделать?

Спустя 11 минут, 11 секунд (21.06.2011 - 10:13) linker написал(а):
Чтоб было понятно:
foreach($_POST as $key => $value)
{
if (preg_match('/^group\d+$/', $key))
echo 'Ищем по параметру ' . $key . '<br>';
}

Спустя 18 минут, 4 секунды (21.06.2011 - 10:31) Renden написал(а):
Я думал ему надо в html отлавливать, а не в php при сабминте формы. Да.. помоему я тупею sad.gif

Спустя 3 минуты, 56 секунд (21.06.2011 - 10:35) savelikan написал(а):
linker
ОГРОМНОЕ СПАСИБО!
То, что надо! =)

чуть-чуть поправил, и вот, что получилось:
IF($_POST['usergroup']=="true")
{
foreach($_POST as $key => $value)
{
IF(preg_match("/^group\d+$/", $key))
{
$group_search = str_replace("group","",$key);
$SQLusergroup = mysql_query("SELECT * FROM `site_usergroup` WHERE `id` = '".$group_search."' AND `add` = 'user'");
$TSTusergroup = mysql_fetch_array($SQLusergroup);
echo $TSTusergroup['text']."<BR>";
}
}


}

Спустя 7 минут, 7 секунд (21.06.2011 - 10:42) Renden написал(а):
savelikan
Не хорошо делать запрос в цикле. Рекомендую перебрать массив, и используя оператор AND собрать 1 запрос со всеми чекбоксами которые нужны. И стоит думаю на всякий случай присвоить (int)$group_search в запросе.

Спустя 14 минут, 19 секунд (21.06.2011 - 10:57) savelikan написал(а):
если б я так хорошо знал MySQL и PHP...

Спустя 2 минуты, 15 секунд (21.06.2011 - 10:59) linker написал(а):
$condition = array();
foreach($_POST as $key => $value)
{
if (preg_match('/^group\d+$/', $key))
$condition[] = "`" . $key . "` = '" . mysql_real_escape_string($value) . "'";
}
$sql = "SELECT * FROM `table` WHERE " . implode(" AND ", $condition);

Спустя 4 минуты, 26 секунд (21.06.2011 - 11:03) savelikan написал(а):
спасибо, но тут не предусмотрено
$group_search = str_replace("group","",$key);
тоесть искать не "group2" а просто "2" =)

Спустя 32 минуты, 16 секунд (21.06.2011 - 11:36) linker написал(а):
<INPUT TYPE="checkbox" NAME="group[]" value="1">Химия<BR>
<INPUT
TYPE="checkbox" NAME="group[]" value="5">Биология<BR>
<INPUT
TYPE="checkbox" NAME="group[]" value="6">География<BR>
$sql = "SELECT * FROM `table`";
if (isset($_POST['group']) && !empty($_POST['group']))
{
foreach($_POST['group'] as &$value)
$value = (int)$value;
$sql .= " WHERE `id` IN (" . implode(", ", $_POST['group']) . ")";
}


_____________
Одесса - мой город!)))
Быстрый ответ:

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