Ну, вы можете создать свою форму следующим образом:
$res = mysql_query("SELECT id, category FROM categories ORDER BY category");
while (mysql_fetch_array($res))
{
echo $res['category'];
for ($i=0; $i<3; $i++)
echo " <input name='cat_" . $res["id"] . "_" . $i . "' />";
}
Таким образом, у вас будут поля с именами cat_1_1
, cat_1_2
, cat_1_3
, cat_2_1
, ..., cat_3_3
На странице, где вы обрабатываете форму, которую нужно просто разделить на _
, извлеките 2-й токен (идентификатор категории, вы можете отбросить остальные) и поместите значения в БД, однуна один.
Так, например (может потребоваться дополнительная настройка / проверка ошибок и т. д.):
foreach($_POST as $name=>$value)
{
$tokens = preg_split("/_/", $name);
if ($tokens[0] == "cat")
{
$catnum = (int)$tokens[1];
// INSERT ($catnum, $value) in the table here.
}
}