|
|
|
| Например:
1)
Я к себе на сайт добавляю патч игры X ....
2)
Потом я добавляю демку этой же игры X...
Как сделать так чтобы при просмотре патча игры X мне показало (например где нить ниже описания патча), что на эту игру есть ещё и демка....
Хотели присвоить ID играм, но поняли что будет слишком много запросов к базе....
посоветуйте как ето сделать. | |
|
|
|
|
|
|
|
для: f12
(20.10.2005 в 00:36)
| | А почему вас пугает большое число запросов? У вас наблюдаются видимые задержки при обращении к базе данных? | |
|
|
|
|
|
|
|
для: cheops
(20.10.2005 в 01:01)
| | а если таких демок патчей скринов и тд. будет около 70-ти задержки появятся полюбому
Можете помочь реализовать вот из такой таблицы .... php код который бы реализовывал нужный мне скрипт
-=-=-=-=-=-=-=-=-=-=-=-=-=-
id //id игры
name //Название игры
info //Всякая инфа
cheats_id //ID читов
save_id // id save'ов
trainers_id //id трейнеров
patches_id //id Патчей
demo_id //id демок
wallpapers_id //id Обоиев
screenshots_id //id Скринов
sounds_id //id Музона из игры
video_id //ID видео файлов
reviews_id //id рецензий
-=-=-=-=-=-=-=-=-=-=-=-=-=- | |
|
|
|
|
|
|
|
для: f12
(20.10.2005 в 01:24)
| | >а если таких демок патчей скринов и тд. будет около 70-ти
>задержки появятся полюбому
Почему, ведь 70 это очень небольшое число для двухтабличного запроса... к тому же связывающие столбцы всегда можно проиндексировать для увеличения скорости... | |
|
|
|
|
|
|
|
для: cheops
(20.10.2005 в 01:51)
| | ок... можете показать как примерно ето должно тогда выглядеть? | |
|
|
|
|
|
|
|
для: F12
(20.10.2005 в 01:58)
| | Плясать следует от таблицы
id //id игры
name //Название игры
info //Всякая инфа
|
Далее следует создать таблицу для демок
id_demo // первичный ключ демки
path // путь к файлу или сам файл, если он хранится в базе
id // id игры
|
Тоже самое с патчами
id_patch // первичный ключ патча
path // путь к файлу или сам файл, если он хранится в базе
id // id игры
|
и т.д. для чит-кодво и т.п. создавать таблицы. Таким образом, вы всегда сможете хранить например несколько патчей, просто указав к какой игре они относятся по id. Систему администрирования следует построить таким образом, чтобы сначала добавлялась игра, а затем всё остальное - первичный ключ id будет браться из строки запроса GET (только следует проверять параметр при помощи регулярных выражений, чтобы не просочилась SQL-инъекция). На странице игры game.php?id=47 всегда можно будет выбрать из таблиц демок demo и патчей patch нужные записи при помощи запросов
SELECT * FROM demo WHERE id=$_GET[id]
SELECT * FROM patch WHERE id=$_GET[id]
|
| |
|
|
|
|
|
|
|
для: cheops
(20.10.2005 в 02:19)
| | А можно сделать чтобы они автоматом связывались ? | |
|
|
|
|
автор: cheops (из вне) (20.10.2005 в 15:33) |
|
|
для: f12
(20.10.2005 в 14:37)
| | >А можно сделать чтобы они автоматом связывались ?
Опишите как вы это видите - да, можно, но я не могу пока понять что вас затрудняет? | |
|
|
|
|
|
|
|
для: cheops (из вне)
(20.10.2005 в 15:33)
| | Так чот я совсем запутался...
Я создал модуль для добавления игр ....
В таблице модуля у меня такие поля как:
У меня есть модуль патчей и демок ....
Принцип такой при добавление демки я заношу её название, описание, путь к ней и + ставлю <select> при раскрытие которого можно будет выбрать игру (с которой надо связать демку)
Я добавляю значение id (в таблицу DEMO в поле id_igri) той игры которую выбрал
Ну так вот как мне сделать чтобы потом на странице game.php?id=47 мне показало что к етой игре есть демка , патч а на странице demo.php?id=27 показывало что к той игре которой демка есть ещё патч , скриншот и тд. и тп. | |
|
|
|
|
|
|
|
для: F12
(23.10.2005 в 01:02)
| | Понятно. После того, как вы загружаете страницу game.php?id=47, вы должны осуществить запрос к таблице DEMO
SELECT * FROM DEMO WHERE id_igri = $_GET[id]
|
Если запрос возвращает больше одной записи (проверить это можно с помощью функции mysql_num_rows()), вы выводите демо игры, и так по всем позициям, для патча следует использовать запрос
SELECT * FROM PATCH WHERE id_igri = $_GET[id]
|
В итоге у вас будет блочная структура, каждый блок будет принимать id игры и проверять собственную таблицу - имеются в ней записи с таким id_igri или нет. | |
|
|
|
|
|
|
|
для: cheops
(23.10.2005 в 20:22)
| | Всё это можно же убрать в одну таблицу в базе.
например
sounds_id //id Музона из игры
sounds_kol //кол-во файлов
через запятую например...
Но вот только как выводить полученный результат ? по id игры это для меня вопрос.... | |
|
|
|
|
|
|
|
для: f12
(20.10.2005 в 00:36)
| | Совственно такой вопрос. Вот например trainers_id равен 1,2,3,4,5
а
trainers_func равен 12,13,14,15,16
Вопрос такой. Как мне сделать вывод например такой
<a href="trainers.php?id=$trainers_id">$trainers_func</a>
и так далее пока значения в полях не закончатся.
Заранее благодарю за ответ.
Если не совсем понятно, что я написал... пишите... попробую объяснить подробнее. | |
|
|
|
|
|
|
|
для: Borbosso
(05.11.2005 в 02:08)
| | Не очень понятно, trainers_id и trainers_func находятся в одной таблице или разных и как они соотносятся? | |
|
|
|
|
|
|
|
для: cheops
(05.11.2005 в 10:34)
| | Мне самому не совсем понятнен ход моих мыслей... но я уже сам разобрался... | |
|
|
|
|
|
|
|
для: cheops
(05.11.2005 в 10:34)
| | Есть таблица games в ней хранится инфа о трейнерах
-=-=-=-=-=-=-=-=-=-
games
-game_id
-trainers_id // id трейнера
-trainers_func //кол-во функций которые он выполняет
-=-=-=-=-=-=-=-=-=-
также есть таблица трейнеры в ней хранится инфа о тренере (его id, ссылка, кол-во скачиваний и т.д. )
Вот например в таблице games
trainers_id = "1,2,3";
trainers_func = "5,11,12";
Хочу чтобы при удалении трейнера так же удалялость инфа о нём и в таблице games. | |
|
|
|
|
|
|
|
для: Borbosso
(11.11.2005 в 07:16)
| | Хм... если не используется таблица InnoDB, т.е. нет поддержки внешних ключей, то необходимо удалять данные в два запроса, сначала из второй таблицы, затем из первой. | |
|
|
|
|
|
|
|
для: cheops
(11.11.2005 в 13:31)
| | Вы меня не поняли. (а может я чего-то не понимаю.)
Вот например удаляю данные о трейнере из таблицы _trainers его id равен 2 кол-во функций равно 5 id игры равно 10. В таблице _games есть игра её id равно 10 trainers_id = 1,2,3
trainers_func = 1,5,10
Вот мне надо удалить значение в trainers_id чтобы получилось trainers_id = 1,3 а trainers_func = 1,10
Вроде понятно объяснил. :) | |
|
|
|
|
|
|
|
для: Borbosso
(12.11.2005 в 01:53)
| | А поля "trainers_id = 1,2,3" и "trainers_func = 1,5,10" какого типа? Зря скупитесь на таблицы соответствия - лучше завести пару лишних таблиц, зато потом не придётся выкусывать из середины значения ключей. | |
|
|
|