Такая проблема:
В системе регистрации пользователя есть отдельный пункт, "языки", допустим.
Он вызывается модальным окном, но не суть. В это пункте есть выбор "владения языков":
<label>Датский</label>
<select name="dan">
<option value="" selected="selected">Не владею</option>
<option value="lev1">Носитель языка</option>
<option value="lev2">Средний</option>
<option value="lev3">Средний продвинутый</option>
<option value="lev4">Высший</option>
</select><br /><br />
<label>Шведский</label>
<select name="swe">
<option value="" selected="selected">Не владею</option>
<option value="lev1">Носитель языка</option>
<option value="lev2">Средний</option>
<option value="lev3">Средний продвинутый</option>
<option value="lev4">Высший</option>
</select><br /><br />
<label>Финский</label>
<select name="fin">
<option value="" selected="selected">Не владею</option>
<option value="lev1">Носитель языка</option>
<option value="lev2">Средний</option>
<option value="lev3">Средний продвинутый</option>
<option value="lev4">Высший</option>
</select><br /><br />
И так очень много раз.
Задача:
Нужно в базу записать id пользователя который регистрируется, язык, которым он владеет и уровень познания этого языка.
Не знаю как записать "имя" языка и его уровень.
Спустя 2 часа, 14 минут, 47 секунд (11.02.2011 - 14:02) RCuPeR написал(а):
Что, ни у кого никаких идей ?!
Спустя 4 минуты, 34 секунды (11.02.2011 - 14:07) linker написал(а):
Ну как, ты же определили уже имена языкам: fin, dat, swe. В чем проблема? А уровень лучше определять целочисленным значением. Таблица
`userid` int(..)
`language` varchar(3)
`level` smallint(...)
Спустя 20 минут, 33 секунды (11.02.2011 - 14:27) RCuPeR написал(а):
Да не, таблица уже есть.
Не могу придумать как засунуть туда данные.
Вот смотри:
Но как мне вытащить сам язык (['fin'])?!
Возможно это довольно глупый и банальный вопрос-задача, но всё же он имеет место быть.
CREATE TABLE `lang` (
`id` int(11) NOT NULL,
`lang` varchar(10) NOT NULL,
`level` varchar(10) NOT NULL,
`id_user` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Не могу придумать как засунуть туда данные.
Вот смотри:
echo $_POST['fin']; // вернёт тот уровень, который я выбрал для этого языка.
Но как мне вытащить сам язык (['fin'])?!
Возможно это довольно глупый и банальный вопрос-задача, но всё же он имеет место быть.
Спустя 11 минут, 12 секунд (11.02.2011 - 14:38) linker написал(а):
CREATE TABLE `langdefine` (туда вставляешь все свои языки.
`lang` varchar(10) NOT NULL,
`name` varchar(32) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Спустя 20 минут, 34 секунды (11.02.2011 - 14:59) RCuPeR написал(а):
Как ?!
Как мне из $_POST['fin'] вытащить "fin" ?
Как мне из $_POST['fin'] вытащить "fin" ?
Спустя 46 минут, 44 секунды (11.02.2011 - 15:46) inpost написал(а):
foreach($_POST as $k => $v)
Спустя 54 минуты, 15 секунд (11.02.2011 - 16:40) RCuPeR написал(а):
sharki посоветовал сделать так:
И всё работает.
Спасибо ему и спасибо вам, что отозвались.
<label>Английский</label>
<select name="lang[1]">
<option value="" selected="selected">Не владею</option>
<option value="lev1">Носитель языка</option>
<option value="lev2">Средний</option>
<option value="lev3">Средний продвинутый</option>
<option value="lev4">Высший</option>
</select><br /><br />
<label>Русский</label>
<select name="lang[2]">
<option value="" selected="selected">Не владею</option>
<option value="lev1">Носитель языка</option>
<option value="lev2">Средний</option>
<option value="lev3">Средний продвинутый</option>
<option value="lev4">Высший</option>
</select><br /><br />
<label>Украинский</label>
<select name="lang[3]">
<option value="" selected="selected">Не владею</option>
<option value="lev1">Носитель языка</option>
<option value="lev2">Средний</option>
<option value="lev3">Средний продвинутый</option>
<option value="lev4">Высший</option>
</select><br /><br />
<label>Китайский</label>
<select name="lang[4]">
<option value="" selected="selected">Не владею</option>
<option value="lev1">Носитель языка</option>
<option value="lev2">Средний</option>
<option value="lev3">Средний продвинутый</option>
<option value="lev4">Высший</option>
</select><br /><br />
<?php
foreach($_POST['lang'] as $key => $value)
if($value != NULL) {
switch ($key){
case "1": echo "eng".'=>'.$value.'<br />';
break;
case "2": echo "ru".'=>'.$value.'<br />';
break;
case "3": echo "ua".'=>'.$value.'<br />';
break;
case "4": echo "chi".'=>'.$value.'<br />';
break;
}
} else { continue; }
?>
И всё работает.
Спасибо ему и спасибо вам, что отозвались.
_____________
Гнусный социопат с комплексом Бога.