Вниз  PHP и мелкие вопросы
- 30.12.2020 / 17:08
Macabre
  Пользователь

Macabre 
Сейчас: Offline
Ксакеп, ну получается мы добавляем музыкальную группу. Написали название и указываем стиль. Стили это отдельный модуль. Стиль выбираем из списка, ставим чекбоксы у нужных значений. Допустим выбрали два или три стиля. Сохранили. Это я могу сделать. Но порой приходится редактировать группу, изменить стили. Надо чтобы при редактировании открывался список всех стилей с отмеченными чек боксами у тех стилей, которые были сохранены ранее. Я вот не пойму как это реализовать в пхп и сам принцип куда сохранение выбранных стилей группы делать: в отдельную таблицу или в одну ячейку.
- 30.12.2020 / 17:50
Витаминыч
  Супермодератор

Витаминыч 
Сейчас: Offline
Macabre, я не вникал, потому абстракция:
Таблица_Группы
- КодГруппы
- НазваниеГруппы


Таблица_Жанры
- КодЖанра
- НазваниеЖанра


Таблица_ЖанрыГрупп
- Код
- КодГруппы
- КодЖанра


Получается, когда в интерфейсе ставишь чекбокс напротив жанра, в таблицу ЖанрыГрупп добавляется запись. Когда чекбокс снимается при редактировании, запись из этой таблицы нужно удалить. Визуализация:
https://annimon.com/forum/file22493/visual.PNG
Рекомендую почитать про нормализацию базы. Если не ошибаюсь, я описал третью нормальную форму. Главное не переусердствовать в этом деле, а то замучаешься потом собирать все таблицы в одну :gg:
__________________
 わからない!!


Прикрепленные файлы:
123.excalidraw (38.67 кб.) Скачано 154 раза
visual.png (37.06 кб.) Скачано 316 раз
- 30.12.2020 / 18:34
Macabre
  Пользователь

Macabre 
Сейчас: Offline
Витаминыч, ну первые две таблицы у меня есть. Третью сделаю. Нужна помощь с выводом пхп при редактировании.
- 30.12.2020 / 20:53
Ксакеп
  Модератор форума

Ксакеп 
Сейчас: Offline
Macabre, на PHP у тебя должна быть какая-то такая логика:

  - верстаешь свой интерфейс на HTML, CSS
  - берёшь из базы данные, возможно, c JOIN'ами
  - берёшь шаблонизатор, например, twig
  - адаптируешь свой html под шаблонизатор — например, с помощью {% for item in items %} оборачиваешь повторяющиеся элементы, с помощью if то что нужно скрывать или показывать не всегда
  - в шаблон прокидываешь данные
  - готово

Тебе нужно будет на javascript написать функцию, которая соберёт тебе состояние html странички, всех её чекбоксов, и которая отправит полученные данные на сервер. Дальше сервер эти данные сохранит.

Изменено Ксакеп (30.12 / 20:56) (всего 1 раз)
- 3.02.2021 / 11:03
Macabre
  Пользователь

Macabre 
Сейчас: Offline
Ксакеп, допустим, вот в форме добавления есть вывод списка. Отмечаем нужные галочки и передаем пост. Далее как сохранить таким образом, чтобы каждый выбранный мной пункт сохранился как новая строка в таблице то есть под уникальным айди?
  1.   while ($res = mysql_fetch_assoc($req)) {
  2.     echo'<input name="style" type="checkbox" value="1" />&nbsp;<a href="'.$res['id'].'">'.$res['name'].'</a><br/>';
  3.        }

- 3.02.2021 / 15:06
web_demon
  Супервизор

web_demon 
Сейчас: Offline
  1. <input name="style" type="checkbox" value="1" />
Не так, а так:
  1. <input name="style[]" type="checkbox" value="1" />
тогда у тебя в переменной $_POST['style'] будет массив с отмеченными элементами value.
Дальше циклом пройдешься по полученному массиву и запишешь в базу что тебе там надо.

Плюс в инпуте в value нужно хоть что-то передавать уникальное, чтоб ты смог найти это потом в базе. А отмечать/снимать нужно свойством selected="selected"
  1. while ($res = mysql_fetch_assoc($req)) {
  2.         echo'<input name="style" type="checkbox" value="'.$res['id'].'" />&nbsp;<a href="'.$res['id'].'">'.$res['name'].'</a><br/>';
  3.            }

Ксакеп, ты будешь плохой учитель. У тебя спроси как написать hello world на php так ты скажешь снести винду скачать линукс, установить, потом установить апач, php, потом composer, потом скачать laravel, ну и там написать заветные "Hello World!"

Изменено web_demon (3.02 / 15:10) (всего 1 раз)
- 3.02.2021 / 16:04
Macabre
  Пользователь

Macabre 
Сейчас: Offline
web_demon, потом реально будет сделать форму редактирования? Вывести список стилей с отмеченными чекбоксами у тех стилей, которые имеются в базе?
- 3.02.2021 / 16:08
web_demon
  Супервизор

web_demon 
Сейчас: Offline
Да, конечно. Единственное, продвинься сам хоть немного. Готовый код за тебя никто не напишет.
- 3.02.2021 / 16:25
Macabre
  Пользователь

Macabre 
Сейчас: Offline
web_demon, все что у меня на сайте поверх Джона сделано мной. Просто именно такой формой, которая нужна сейчас, я не занимался.
- 3.02.2021 / 16:50
Macabre
  Пользователь

Macabre 
Сейчас: Offline
web_demon, примерно так?
  1.        ///Запись стиля///
  2.        if($style)
  3. {
  4.     foreach ($style as $key=>$style_value) {
  5.  
  6.                mysql_query("insert into `cat_style` set
  7. `user`='" . $user_id . "',
  8. `time`='" . $realtime . "',
  9. `style`='" . $style_value . "',
  10. `band`='" . $clubid . "' ;");
  11.     }
  12. }

Наверх  Всего сообщений: 4740
Фильтровать сообщения
Поиск по теме
Файлы топика (129)