parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

zartus 14.03.2013 07:03

Извините, что морочу голову.
Есть форма с полями типа checkbox для заполнения списка комплектации автомобиля http://zartus.dyndns.org/parser/addnext.html .
Перед этим другая форма со спецификацией авто http://zartus.dyndns.org/parser/addform.html .
Все это отправляется в mysql.

С начала показалась очевидным представить комплектацию в виде двоичного числа. Если опция отмечена (if def) то текущей позиции по циклу присваивается 1 при помощи сложения, в другом случае 0. Поскольку длина двоичного числа ограничена - разбил на 2 коротких числа. Полученные 2 числа отправятся в поля таблицы mysql.
Предполагалось, что получится, что-то вроде этого(не доделано):
$accessories[^table::load[accessories.cfg]] //список опций
$n[^math:convert[536870912](10;2)]
$i[^math:convert[536870912](10;2)]

$acc[^math:convert[1073741824](10;2)]
acc=$acc</br>
$acc2[^math:convert[1073741824](10;2)]
<p>
^accessories.menu{
  $an[$accessories.name]
  ^if($accessories.section_id <= 30){
    ^if(def $form:$an){
      accb=$acc<br>
      n=$n<br>
      $acc[^eval($acc+$n)] 
      accp=$acc</br>
      $n[^eval($n/^math:convert[2](10;2))]
      np=$n<br>
    }
  }
  ^if(def $form:$an){
    $acc2[^eval($acc2+$i)]
    $i[^eval($i/^math:convert[2](10;2))]
  }
}
</p>
$acc<br>
$acc2<br>
Можно, конечно что-то со строками сделать, но это,на первый взгляд, реализуется менее очевидно. (пока не нашел простого доступа к символу строки по номеру позиции a=abc[n]). Или создать для комплектации дополнительную таблицу, куда просто подряд записывать опции в текстовом виде.