Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как можно связать демку и патч игры?
 
 автор: f12   (20.10.2005 в 00:36)   письмо автору
 
 

Например:
1)
Я к себе на сайт добавляю патч игры X ....
2)
Потом я добавляю демку этой же игры X...

Как сделать так чтобы при просмотре патча игры X мне показало (например где нить ниже описания патча), что на эту игру есть ещё и демка....

Хотели присвоить ID играм, но поняли что будет слишком много запросов к базе....

посоветуйте как ето сделать.

   
 
 автор: cheops   (20.10.2005 в 01:01)   письмо автору
 
   для: f12   (20.10.2005 в 00:36)
 

А почему вас пугает большое число запросов? У вас наблюдаются видимые задержки при обращении к базе данных?

   
 
 автор: f12   (20.10.2005 в 01:24)   письмо автору
 
   для: 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 рецензий
-=-=-=-=-=-=-=-=-=-=-=-=-=-

   
 
 автор: cheops   (20.10.2005 в 01:51)   письмо автору
 
   для: f12   (20.10.2005 в 01:24)
 

>а если таких демок патчей скринов и тд. будет около 70-ти
>задержки появятся полюбому
Почему, ведь 70 это очень небольшое число для двухтабличного запроса... к тому же связывающие столбцы всегда можно проиндексировать для увеличения скорости...

   
 
 автор: F12   (20.10.2005 в 01:58)   письмо автору
 
   для: cheops   (20.10.2005 в 01:51)
 

ок... можете показать как примерно ето должно тогда выглядеть?

   
 
 автор: cheops   (20.10.2005 в 02:19)   письмо автору
 
   для: 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]

   
 
 автор: f12   (20.10.2005 в 14:37)   письмо автору
 
   для: cheops   (20.10.2005 в 02:19)
 

А можно сделать чтобы они автоматом связывались ?

   
 
 автор: cheops (из вне)   (20.10.2005 в 15:33)
 
   для: f12   (20.10.2005 в 14:37)
 

>А можно сделать чтобы они автоматом связывались ?
Опишите как вы это видите - да, можно, но я не могу пока понять что вас затрудняет?

   
 
 автор: F12   (23.10.2005 в 01:02)   письмо автору
 
   для: cheops (из вне)   (20.10.2005 в 15:33)
 

Так чот я совсем запутался...
Я создал модуль для добавления игр ....
В таблице модуля у меня такие поля как:

id
title
info


У меня есть модуль патчей и демок ....
Принцип такой при добавление демки я заношу её название, описание, путь к ней и + ставлю <select> при раскрытие которого можно будет выбрать игру (с которой надо связать демку)

Я добавляю значение id (в таблицу DEMO в поле id_igri) той игры которую выбрал

Ну так вот как мне сделать чтобы потом на странице game.php?id=47 мне показало что к етой игре есть демка , патч а на странице demo.php?id=27 показывало что к той игре которой демка есть ещё патч , скриншот и тд. и тп.

   
 
 автор: cheops   (23.10.2005 в 20:22)   письмо автору
 
   для: 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 или нет.

   
 
 автор: Borbosso   (04.11.2005 в 08:19)   письмо автору
 
   для: cheops   (23.10.2005 в 20:22)
 

Всё это можно же убрать в одну таблицу в базе.
например
sounds_id //id Музона из игры
sounds_kol //кол-во файлов
через запятую например...
Но вот только как выводить полученный результат ? по id игры это для меня вопрос....

   
 
 автор: Borbosso   (05.11.2005 в 02:08)   письмо автору
 
   для: 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>
и так далее пока значения в полях не закончатся.
Заранее благодарю за ответ.
Если не совсем понятно, что я написал... пишите... попробую объяснить подробнее.

   
 
 автор: cheops   (05.11.2005 в 10:34)   письмо автору
 
   для: Borbosso   (05.11.2005 в 02:08)
 

Не очень понятно, trainers_id и trainers_func находятся в одной таблице или разных и как они соотносятся?

   
 
 автор: Borbosso   (06.11.2005 в 02:24)   письмо автору
 
   для: cheops   (05.11.2005 в 10:34)
 

Мне самому не совсем понятнен ход моих мыслей... но я уже сам разобрался...

   
 
 автор: Borbosso   (11.11.2005 в 07:16)   письмо автору
 
   для: 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.

   
 
 автор: cheops   (11.11.2005 в 13:31)   письмо автору
 
   для: Borbosso   (11.11.2005 в 07:16)
 

Хм... если не используется таблица InnoDB, т.е. нет поддержки внешних ключей, то необходимо удалять данные в два запроса, сначала из второй таблицы, затем из первой.

   
 
 автор: Borbosso   (12.11.2005 в 01:53)   письмо автору
 
   для: 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
Вроде понятно объяснил. :)

   
 
 автор: cheops   (12.11.2005 в 02:17)   письмо автору
 
   для: Borbosso   (12.11.2005 в 01:53)
 

А поля "trainers_id = 1,2,3" и "trainers_func = 1,5,10" какого типа? Зря скупитесь на таблицы соответствия - лучше завести пару лишних таблиц, зато потом не придётся выкусывать из середины значения ключей.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования