checkbox'и и база

Shyroop

Новичок
checkbox'и и база

Привет!
Поискал по форуму, но не увидел ничего похожего.
Есть 50 checkbox'ов те которые отмечены нужно занести в базу. Ест какое-нить решение кроме создавания 50 ячеек в базе? как можно эту проблемму решить?

Спасибо!
 

Romantik

TeaM PHPClub
можно их двоичное значение хранить как одно число будет в таблице
 

Кром

Новичок
>можно их двоичное значение хранить как одно число будет в таблице

Для 50 checkbox'ов? Это как это?
 

alpine

Новичок
Кром
поле в базе SET

-~{}~ 06.08.04 20:52:

Правда для 50-ти я е пробовал ...
Но 10ть храню. Очень удобно.

-~{}~ 06.08.04 20:58:

Или хранить множество типа "1,3,10,15, ..." в мускуле есть встроенные функции для поиска в множествах и работы с ними.
 

Romantik

TeaM PHPClub
Как вариант
строковой тип поля, состоящий из 1 и 0 и функции парсинга
 

Groove

Новичок
Автор оригинала: Кром
>можно их двоичное значение хранить как одно число будет в таблице

Для 50 checkbox'ов? Это как это?
На примере использования с массивом
PHP:
<?
  $CFG_VAC_PROG_LIST = array(
    0  => 'ActiveX, API, СОМ',
    1  => 'ASP',
    2  => 'Assembler',
    3  => 'C, C++',
    4  => '.Net',
    5  => 'Delphi, Pascal',
    6  => 'Flash',
    7  => 'HTML, DHTML, CSS',
    8  => 'Java',
    9  => 'JScript, VBScript',
    10 => 'Perl, CGI',
    11 => 'PHP',
    12 => 'Python',
    13 => 'UML',
    14 => 'XML, XSL, XSLT'
  );
  
  
  //При записи в БД
  $job_know_prog=0;
	for($i=1; $i<=count($CFG_VAC_PROG_LIST); $i++)
	{
		if(isset($_POST['prog'.$i]))   $job_know_prog = $job_know_prog |(1<<($i-1));
  }
  /*
  $job_know_prog - это записываем в поле типа INT
  */
  
  
  //При выводе
  $prog='';
  foreach ($CFG_VAC_PROG_LIST as $key => $val)
  {
    if(($job_know_prog)&(1<<($key)))
    {
      $prog.=$val.', ';
    }
  } 
  /* 
  $dbms - строковое представление, типа "PHP, Perl, CGI"
  */
?>
Пример работающий...
 

neko

tеam neko
Пример работающий...
для примера которые влазиет в 15 бит работающий, невопрос

-~{}~ 07.08.04 00:22:

Shyroop
смотря как ты с ними работаешь
можно через запятую implode()/explode()
можно <optionname on="yes"/> кучей
в общем, вариантов много
 

Shyroop

Новичок
hotelos bi cherez implode()/explode(), no ja nemnogo ne dogonjaju kak?
mne kazetsja bilobi udobno, esli bi on vse chechbox'i zapisal v bazu v odnu stro4ku vida(1:0:0:0:1:1) - gde 1 - otme4enij chekbox, a o - net.
a na vihode 4erez explode() vse podelit.
tak razumno delat?
 

neko

tеam neko
разумно есть ты уверен, что проконтроллируешь порядок
и еще от базы зависит
ничто не мешает делать на селекте substr и as
 
Сверху