Puedes probar de la siguiente forma.
Te doy un ejemplo que yo uso en este tipo de casos que se puede elegir mas de un dato en mi ejemplo uso un checkbox
Código PHP:
<input type="checkbox" name="perms[]" value="1" id="groups_1"/> 1
<input type="checkbox" name="perms[]" value="2" id="groups_2"/> 2
<input type="checkbox" name="perms[]" value="3" id="groups_3"/> 3
y al momento de recibir esto para guardarlo en mi BD hago de la siguiente forma
Código PHP:
$permissionsArray = array();
if (isset($_POST['perms']))
{
foreach ($_POST['perms'] as $rgroup)
$permissionsArray[] = (int) $rgroup;
}
$finalPermissions = implode(",",$permissionsArray);
Como veras lo unico que hago es controlar que se haya seleccionado algo de ese campo y si eso ocurre entonces recorro con un foreach el campo ya que el mismo tiene varios valores y al recorrer todo y guardarlo en un
array entonces lo guardo finalmente en una variable cualquiera con un
implode, que lo que hace es
que se guarde asi
Código PHP:
$finalpermissions = 'groups_1, groups_2, groups_3';
y en la BD lo guardo en un campo del tipo texto..
Luego cuando necesito los datos lo unico que hago es
Código PHP:
//hago la consulta sql para tomar los datos que quiero del campo y lo guardo en una variable por ahora lo llamamos
//$finalpermissions siendo algo asi $finalpermissions = $row['perms']; siendo perms el campo en mi BD
$permissions = array();
$permissions = explode(',' , $finalpermissions);
echo 'Grupo 1: '. $premissions[0];
echo 'Grupo 2: '. $premissions[1];
Es un ejemplo rapido pero en teoria es asi como lo manejo.. es cuestion que veeas mas o menos como podes aplicarlo..