Роман_13
Новичок
Помогите начинающему ! Массив из мультиселекта и записать в базу
Решил переделать доску объявлений чтобы добавлять одно объявление к нескольким категориям...
То есть на странице добавления у меня список категорий с подкатегориями в селекте с атрибутом мультипл надо добавлять в каждую подкатегорию как отдельное объявление и когда в одной категории добавляешь одно и то же объявление в разные подкатегории то когда вызываешь страницу самой категории то это объявление повторяется много раз потому как на странице показаны все объявления которые содержатся в подкатегориях принадлежащих данной категории , то есть во сколько подкатегорий её добавил ... А хочется просто чтобы в случае вызова категорий это объявление было показано один раз и в самом объявлении было указано к каким подкатегориям оно принадлежит , ну и соответственно при выборе подкатегорий в которых оно занесено оно тоже отображалось , и чтобы это всё работало если оно внесено в подкатегории разных категорий...
Вот сдесь выводится список категорий на странице добавления ...
name=\"catgforprocess_1[]\" должен ведь получатся массив из выбранных значений ...
есть такие таблицы в базе ...
одна для объявлений
| id_ads | id_catg | title | ads_desc |
вторая для категорий с подкатегориями
| id_catg | catg | catg_desk | parent_id |
С первой таблицей я думаю всё правильно , первая колонка ид самого объявления , вторая это к какой категории принадлежит объявление , третья это заголовок , четвёртая это описание объявления ... ещё есть колонки ,но думаю нет смысла их описывать потому как они содержат всякие данные принадлежащие к объявлению всякие там е майлы и контакты , даты добавления и прочую муть... А вот во вторую таблицу в первую колонку пишется ид категорий и подкатегорий , но ... сначала для удобства я создаю главные и их ид начинается с 1 и так далее у главных категорий парент_ид всегда 0 и в главные категории добавлять объявления нельзя , уровня всего два и каждой главной категории хоть сколько подкатегорий добавляй ид_катг всегда +1 "автоинкремент" и вот все подкатегории которые принадлежат к главной с ид=1 будут иметь парент_ид =1 , главной с ид =2 будут иметь все парент_ид =2 и так далее , и даже если потом придётся добавить главную категорию и её ид будет =210 , то все принадлежащие ей подкатегории будут иметь парент_ид =210 , а ид у всех по порядку продолжается , а сортировка всё равно по названию , и вот теперь надо ещё одна таблица которая будет содержать ассоциации к каким подкатегориям принадлежит объявление , вид третьей таблицы должен быть примерно такой .... из первой таблицы можно поле id_catg вобще я так понимаю не использовать или удалить совсем , а просто теперь всё будет ассоциироваться по третьей таблице
| id_ads | id_catg |
----3----------55
----3----------66
----3----------77
----8----------80
----8----------85
Вот только у меня не получается создать массив выбранных из селекта значений и положить объявление в свою таблицу а ассоциацию в третью ... А хочется этот вопрос решить ... )))
А так как в PHP я начинающий потому к вам всем и обращаюсь ! )))
Соответственно и SQL запрос тоже сконструировать как , пока не понимаю , хоть уже и не мало информации прочитал .... а всё никак не осилю эту простую задачу...
заранее Спасибо за помощь !
Решил переделать доску объявлений чтобы добавлять одно объявление к нескольким категориям...
То есть на странице добавления у меня список категорий с подкатегориями в селекте с атрибутом мультипл надо добавлять в каждую подкатегорию как отдельное объявление и когда в одной категории добавляешь одно и то же объявление в разные подкатегории то когда вызываешь страницу самой категории то это объявление повторяется много раз потому как на странице показаны все объявления которые содержатся в подкатегориях принадлежащих данной категории , то есть во сколько подкатегорий её добавил ... А хочется просто чтобы в случае вызова категорий это объявление было показано один раз и в самом объявлении было указано к каким подкатегориям оно принадлежит , ну и соответственно при выборе подкатегорий в которых оно занесено оно тоже отображалось , и чтобы это всё работало если оно внесено в подкатегории разных категорий...
Вот сдесь выводится список категорий на странице добавления ...
name=\"catgforprocess_1[]\" должен ведь получатся массив из выбранных значений ...
PHP:
"<select name=\"catgforprocess_1[]\" multiple=\"multiple\" size=\"10\">";
$applylanguage = sqlapplylanguage();
$sql = "select id_catg,catg,parentid from ".$myprefix."_ads_catg ";
$sql .= "where ".$applylanguage;
$sql .= " order by parentid,catg";
$result2=sql_query($sql, $dbi);
$i = 0;
while(list($id_catg2, $ccatg2, $parentid2) = sql_fetch_row($result2, $dbi)) {
if ($parentid2!=0) $ccatg2=getparent($parentid2,$ccatg2);
if ($postinmaincatg) {
echo "<option value=\"$id_catg2\" ";
if (($id_catg == $id_catg2) or ($id_catg == $parentid2)) {
if ($id_catg == $id_catg2) {
echo "selected"; }
if ($id_catg == $parentid2) {
if ($i == 0) { echo "selected"; }
$i++; }
} echo ">$ccatg2</option>\n"; }
одна для объявлений
| id_ads | id_catg | title | ads_desc |
вторая для категорий с подкатегориями
| id_catg | catg | catg_desk | parent_id |
С первой таблицей я думаю всё правильно , первая колонка ид самого объявления , вторая это к какой категории принадлежит объявление , третья это заголовок , четвёртая это описание объявления ... ещё есть колонки ,но думаю нет смысла их описывать потому как они содержат всякие данные принадлежащие к объявлению всякие там е майлы и контакты , даты добавления и прочую муть... А вот во вторую таблицу в первую колонку пишется ид категорий и подкатегорий , но ... сначала для удобства я создаю главные и их ид начинается с 1 и так далее у главных категорий парент_ид всегда 0 и в главные категории добавлять объявления нельзя , уровня всего два и каждой главной категории хоть сколько подкатегорий добавляй ид_катг всегда +1 "автоинкремент" и вот все подкатегории которые принадлежат к главной с ид=1 будут иметь парент_ид =1 , главной с ид =2 будут иметь все парент_ид =2 и так далее , и даже если потом придётся добавить главную категорию и её ид будет =210 , то все принадлежащие ей подкатегории будут иметь парент_ид =210 , а ид у всех по порядку продолжается , а сортировка всё равно по названию , и вот теперь надо ещё одна таблица которая будет содержать ассоциации к каким подкатегориям принадлежит объявление , вид третьей таблицы должен быть примерно такой .... из первой таблицы можно поле id_catg вобще я так понимаю не использовать или удалить совсем , а просто теперь всё будет ассоциироваться по третьей таблице
| id_ads | id_catg |
----3----------55
----3----------66
----3----------77
----8----------80
----8----------85
Вот только у меня не получается создать массив выбранных из селекта значений и положить объявление в свою таблицу а ассоциацию в третью ... А хочется этот вопрос решить ... )))
А так как в PHP я начинающий потому к вам всем и обращаюсь ! )))
Соответственно и SQL запрос тоже сконструировать как , пока не понимаю , хоть уже и не мало информации прочитал .... а всё никак не осилю эту простую задачу...
заранее Спасибо за помощь !