Checkbox и Mysql

Тема в разделе "Базы данных", создана пользователем Dejurik, 20 дек 2010.

Модераторы: latteo
  1. Dejurik

    Dejurik Создатель

    Регистр.:
    1 авг 2008
    Сообщения:
    17
    Симпатии:
    6
    Всем привет!
    Очень нуждаюсь в помощи или подсказке...

    К примеру:
    Сущекствует 3 таблицы:

    news (id, title, text, date)
    avtors (id, name, about, date)
    news_avtors (id, id_news, id_avtors)

    При добавлении новости, запись заноситься в таблицу news,
    Также при добавлении новости я сделал привязку авторов через checkbox к данной новости.

    Как реализовать чтоб каждый помеченый checkbox добавлялся в таблицу news_avtors отдельной записью.

    К Примеру:
    news_avtors
    (id, id_news, id_avtors)
    1 1 3
    2 1 4
    3 1 2
    4 1 1

    Заранее благодарен за помощь
     
  2. Mr.Emm

    Mr.Emm Постоялец

    Регистр.:
    5 май 2008
    Сообщения:
    145
    Симпатии:
    108
    берешь массив отмеченых чекбоксов, прогоняешь через foreach а там инсертишь по отдельности в базу.
    PHP:
    foreach($checkboxes as $check) {
     
    $sql my_query("INSERT INTO news_avtors (id_news, id_avtors) VALUES ('".(int)$news_id."', '".(int)$check."')");
    }
     
  3. vizard-06

    vizard-06 Создатель

    Регистр.:
    9 фев 2007
    Сообщения:
    11
    Симпатии:
    2
    В целом не лучший вариант с 3-мя таблицами, последняя лишняя, для связи двух таблиц добавь в таблицу news id_avtor, в итоге так получится:

    news (id, id_avtor, title, text, date)
    avtors (id, name, about, date)
     
  4. wal

    wal Постоялец

    Регистр.:
    24 мар 2008
    Сообщения:
    89
    Симпатии:
    30
    вариант с 3мя таблицами универсален, так как у одной новости может быть несколько авторов...

    что собственно у топикстартера и происходит...

    по теме: тут только через цикл, как посоветовали выше...
     
  5. ShaDeRzz

    ShaDeRzz

    Регистр.:
    16 окт 2007
    Сообщения:
    176
    Симпатии:
    65
    Ещё как вариант, можно хранить в таблице список юзеров в одной записи (тоесть в базе в таблице news_avtors для каждой новости будет одна строка с массивом юзеров относящихся к этой новости) — через serialize().
    При выводе новости просто делаете
    PHP:
    $users=unserialize($row['users']);
      foreach(
    $users as $user)
       {
          print 
    $users.', ';
       }
    Где $row['users'] — это поле содержащее список авторов новости