- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Занимаюсь разработкой своего игрового проекта. Движок пишут сам. Так как программировать на пхп я умею очень слабо, то прошу подсказать знающих людей как можно организовать такую штуку:
Нужно сделать что-то типо таксономии. То есть есть запись(в моем случае это игра), и у неё есть поле "платформы", в котором вписаны все игровые платформы которые она поддерживает. Пока-что я сделал в базе данных mysql обычное текстовое поле и в него вписываю. Но есть задача сделать, чтобы каждая платформа(отдельное слово) на странице с игрой была в виде ссылки, и нажав её выводились все игры, в которых она обозначена. То есть с выводом связанных с нею игр проблем думаю не будет.
Вот сама проблема, как сделать само поле в базе данных, в котором будут вписаны все поддерживаемые платформы, то есть обычное текстовое поле не годиться, а нужно чтобы они были бы как то разделены. Может кто подскажет?
не должно быть "поля со всеми платформами", а должна быть отдельная таблица. master - detail.
не должно быть "поля со всеми платформами", а должна быть отдельная таблица. master - detail.
Да, я это понимаю. Таблицу с платформами сделать не проблем. А вот как в самой записи с игрой сделать поля, в котором надо вставить эти самые платформы?
---------- Добавлено 11.12.2014 в 23:48 ----------
master - detail.
Это что такое? можно подробней? В гугле на русском ничего не нашел с этим связанного.
Занимаюсь разработкой своего игрового проекта. Движок пишут сам. Так как программировать на пхп я умею очень слабо, то прошу подсказать знающих людей как можно организовать такую штуку:
похвально конечно, для любителей изобретать велосипеды, но может стоит взять какой-то движек мало известный или широко известный и его кромсать?))
Нужно сделать что-то типо таксономии. То есть есть запись(в моем случае это игра), и у неё есть поле "платформы", в котором вписаны все игровые платформы которые она поддерживает. Пока-что я сделал в базе данных mysql обычное текстовое поле и в него вписываю. Но есть задача сделать, чтобы каждая платформа(отдельное слово) на странице с игрой была в виде ссылки, и нажав её выводились все игры, в которых она обозначена. То есть с выводом связанных с нею игр проблем думаю не будет.
Вот сама проблема, как сделать само поле в базе данных, в котором будут вписаны все поддерживаемые платформы, то есть обычное текстовое поле не годиться, а нужно чтобы они были бы как то разделены. Может кто подскажет?
надеяюсь вы уже освоили связные таблицы? в базе создаете отдельную таблицу вида
platformid //ИД платформы
platformname // название платформы
platformdescr // описание платформы или любой текст который пригодится на странице
в таблице где храните игры добавляете поле platformid в которой происходит связь игры и платформы.
похвально конечно, для любителей изобретать велосипеды, но может стоит взять какой-то движек мало известный или широко известный и его кромсать?))
Конечно пробовал. Ничего не получилось.
надеяюсь вы уже освоили связные таблицы? в базе создаете отдельную таблицу вида
platformid //ИД платформы
platformname // название платформы
platformdescr // описание платформы или любой текст который пригодится на странице
в таблице где храните игры добавляете поле platformid в которой происходит связь игры и платформы.
Да это всё понятно, вопрос в другом, как добавить несколько таких platformid к игре.
чего там сложного? селектом берете все платформы из отдельной таблицы и вставляте в форму
---------- Добавлено 12.12.2014 в 01:16 ----------
сохраняете эти значения в таблице с игрой $_POST['platform '] это ИД платформы
---------- Добавлено 12.12.2014 в 01:24 ----------
Конечно пробовал. Ничего не получилось.
Да это всё понятно, вопрос в другом, как добавить несколько таких platformid к игре.
для этого и стоит посмотреть как в нормальных это движках реализовано? в программировании не главное знать десять-двадцать операторов языка, главное понимать как составить алгоритм... по моему в любой статье в яндексе задать "php и mysql" выйдет урок как связанные таблицы создавать и выводить, это основа основ... категории как вывести? у вас кроме платформ игры наверно делятся на стрелялки, гонялки, стратегии и тд?
чего там сложного? селектом берете все платформы из отдельной таблицы и вставляте в форму
Это добавит только одну платформу, а мне надо несколько. по этому не вариант. или я ошибаюсь? Сам вопрос, как ихз правильно записать втаблице и как вывести на страницу. Как записать через форму это уже не проблемма)🍿
Это добавит только одну платформу, а мне надо несколько. по этому не вариант. или я ошибаюсь? Сам вопрос, как ихз правильно записать втаблице и как вывести на страницу. Как записать через форму это уже не проблемма)🍿
дак почему одну платформу?? у вас под платформы отдельная таблица в которую вы пишете сколько угодно платформ... платформы с играми связаны через ИД платформы, отдельная страница для добавления платформ, отдельно в играх связь платформ с игрой...
в чем смысл таксономии вообще? вы используте это слово, но не понимаете что оно означает? или как оно реализуется? это связанные зависимые данные... сущности хранятся в разных таблицах и связываются через ИД (индентификатор), структура может быть и сложнее чем я описал... в вашем случае как минимум еще кроме платформ должна быть еще таблица категорий, а с игрой они связаны через ИД платформы и ИД категории
Это добавит только одну платформу, а мне надо несколько. по этому не вариант. или я ошибаюсь? Сам вопрос, как ихз правильно записать втаблице и как вывести на страницу. Как записать через форму это уже не проблемма)
Таблица-прослойка.
games (список игр, обязательно наличие поля id/int)
games_platforms (список платформ вида id/int, name/varchar)
games_platforms_list (список вида game_id/int, platform_id/int)
В последней таблице записи будут вида
1 - 2
1 - 3
1 - 7
2 - 5
2 - 6
... где первое значение - id записи из таблицы games, второе - id записи из таблицы games_platforms. На странице с игрой будет два запроса: первый вытягивает основную инфу по игре, второй селектит из games_platforms_list записи, которые относятся к данной игре (game_id). Для получения человеческих названий вместо поля platform_id нужен LEFT JOIN.
Особо упоротые также могут использовать битовые маски, размечая под каждый бит хранимого числа определённую категорию.
дак почему одну платформу?? у вас под платформы отдельная таблица в которую вы пишете сколько угодно платформ... платформы с играми связаны через ИД платформы, отдельная страница для добавления платформ, отдельно в играх связь платформ с игрой...
в чем смысл таксономии вообще? вы используте это слово, но не понимаете что оно означает? или как оно реализуется? это связанные зависимые данные... сущности хранятся в разных таблицах и связываются через ИД (индентификатор), структура может быть и сложнее чем я описал... в вашем случае как минимум еще кроме платформ должна быть еще таблица категорий, а с игрой они связаны через ИД платформы и ИД категории
Ладно, я не буду вас напрягать) Догадался до одного способа при помощи if else. То есть если в поле pc стоит ноль, то платформу не показывает, если 1 то показывает. И так по аналогии создам поля для других платформ. Вот таким простым методом я решил свой вопрос. Спасибо за помощь):)
---------- Добавлено 12.12.2014 в 00:50 ----------
Таблица-прослойка.
games (список игр, обязательно наличие поля id/int)
games_platforms (список платформ вида id/int, name/varchar)
games_platforms_list (список вида game_id/int, platform_id/int)
В последней таблице записи будут вида
1 - 2
1 - 3
1 - 7
2 - 5
2 - 6
... где первое значение - id записи из таблицы games, второе - id записи из таблицы games_platforms. На странице с игрой будет два запроса: первый вытягивает основную инфу по игре, второй селектит из games_platforms_list записи, которые относятся к данной игре (game_id). Для получения человеческих названий вместо поля platform_id нужен LEFT JOIN.
Спасибо за подсказку, потом попробую и такой вариант для практики)
---------- Добавлено 12.12.2014 в 00:55 ----------
в чем смысл таксономии вообще? вы используте это слово, но не понимаете что оно означает?
Может быть слово таксономия тут и не к месту) извиняюсь, просто вот привык к нему:)
Таблица-прослойка.
games (список игр, обязательно наличие id/int)
games_platforms (список платформ вида id/int, name/varchar)
games_platforms_list (список вида game_id/int, platform_id/int)
В последней таблице записи будут вида
1 - 2
1 - 3
1 - 7
2 - 5
2 - 6
... где первое значение - id записи из таблицы games, второе - id записи из таблицы games_platforms.
это может более правильный вариант, но уже для далнейшей нормализации базы данных и с вариантом когда для одной игры несколько платформ привязано.
отдельная таблица связи делается для того чтобы правильно делать выборки данных.
те если у вас несколько платформ возможно для игры, вs делаете мульти селект и в таблицу игры пишете данные ИД платформ в виде строки "1,3,6", и плюс к этому пишете в связанную таблицу ИДигры-ИДплатформы
idgame idplatform
1 1
1 3
1 6
например...
это делается для того чтобы если вы захотите сделать сортировку по платформам и выводить на странице платфрмы с ИД 3, то делаете выборку по этой таблице с LEFT JOIN таблицы игр, на странице игры делаете список платформ с выборкой idplatform IN('1,3,6')