За последние 24 часа нас посетили 20256 программистов и 1084 робота. Сейчас ищут 792 программиста ...

Checkbox и база данных

Тема в разделе "PHP для новичков", создана пользователем jammeal, 24 май 2016.

  1. jammeal

    jammeal Новичок

    С нами с:
    14 май 2016
    Сообщения:
    9
    Симпатии:
    0
    Подскажите, пожалуйста! Организовываю защиту доступа.
    Есть группы доступа и права. Они связаны многие-ко-многим.
    Когда я добавляю или редактирую группу доступа, мне нужно вывести чекбоксом список всех прав (SELECT название_права FROM права).
    Потом выбранные права присваивать группе, добавляя или изменяя индекс_права в таблице "права_и_группы".

    Как это сделать в html-таблице? Вывести этот список php-средствами и потом выбранные права внести в базу?
     
  2. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Сделай запрос всех прав из таблицы, потом циклом построй все чекбоксы со всеми правами.
    Далее сделай проверку, изменён ли какой-то чекбокс, если изменён - вноси в БД. Вот и всё.
     
  3. jammeal

    jammeal Новичок

    С нами с:
    14 май 2016
    Сообщения:
    9
    Симпатии:
    0
    Да, я тоже понимаю, что делать. Я не знаю как.
    Пока придумал такую дурь, но это, кажется, не вариант:
    PHP:
    1. $rightsq = mysqli_query("SELECT * FROM tn_rights");
    2. while ($row = mysqli_fetch_array($rightsq))
    3. {
    4.     $right_name = $row['right_name'];
    5.     $right_id = $row['right_id'];
    6.     echo '<tr><td><input type="checkbox" name="right[]" value="'.$right_name.'"/></td></tr>'."\n";
    7.     if ('checked=="checked"') $right[$i=0]=$right_id; i++;
    8. }
    Как их правильно вывести?
    И как собрать выбранные в то, что я потом смогу использовать (массив или что-то еще) при добавлении или редактировании группы со своими правами?
     
    #3 jammeal, 24 май 2016
    Последнее редактирование модератором: 24 май 2016
  4. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Сделай функцию, которая будет проверять какое значение ты передаёшь (В зависимости от того как это у тебя в БД оформлено), и возвращает "checked" если право есть. И то что она вернула прописывай как атрибут:
    <input <?php function check(1)?>/> -в коде страницы это должно выглядеть так: <input checked/> ну и добавляешь свои аттрибуты.
    --- Добавлено ---
    PHP:
    1. function check ($bool){
    2.   if $bool == 1 return (1)
    3.   else return 0
    4. }