я получаю следующие сообщения из формы:
$_POST['segment'][2]
$_POST['segment'][3]
$_POST['segment'][4]
$_POST['segment'][5]
Это флажки из формы.
Не спрашивайте меня, почему, но опубликованные данные преобразуются в:$ IN ["сегмент"]
Я проверяю их с помощью:
if($IN['segment'][5])
$podo_segment = 5;
elseif($IN['segment'][4])
$podo_segment = 4;
elseif($IN['segment'][3])
$podo_segment = 3;
elseif($IN['segment'][2])
$podo_segment = 2;
else
$podo_segment = 'NULL';
Подо означает футы:)
Затем я вставляю (самое высокое) значение в mysql.(более высокое значение означает, что включены и более низкие значения, поэтому используется только 1 поле)
Мне нужно обновить более старые значения, но используется маска, и я действительно не понимаю, как это делается, так что понятия не имеюкак преобразовать / обновить это до новых значений 2,3,4 или 5.
$segmask = 0;
while (list($a,$b)=@each($IN["segment"]))
$segmask += pow(2,$a);
Я пробовал php.net, но не мог понять это.по крайней мере, ничего, кроме $ segmask, становится значением 2 ^ $ a.(что $ a, $ b и $ b, похоже, ничего не делают ???), но результирующие значения в mysql, например:
5, дают 32, (выглядит нормально для меня: 2 ^ 5)
Нет других вариантов, кроме 2,3,4 и / или 5, дает значения вроде:
9977932
16273612
18366668
24662092
16448
17846476
18370636
34619404
270024716
18370780
9982092
34623564
9977980
512
16386
1064964
2
37240844
35143692
1064972
9977868
16388
2148548620
269500428
2148548668
268976140
1107836940
11026444
2149072908
1589260
В конце мне нужно обновить новое поле mysql со значениями 2,3, 4 или 5 на основе этого старого поля.
Заранее благодарим за любую помощь!