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

Форум MySQL

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

 

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

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

тема: Выборка из БД
 
 автор: JIEXA   (09.10.2005 в 18:03)   письмо автору
 
 

Вот структура:

CREATE TABLE 'games' (
  'id' int(11) unsigned NOT NULL auto_increment,
  'name' varchar(100) NOT NULL default '',
  'developer' varchar(100) NOT NULL default '',
  'oficial_site' varchar(100) NOT NULL default '',
  'date' date NOT NULL default '0000-00-00',
  'genre' varchar(100) NOT NULL default '',
  'buy' varchar(100) NOT NULL default '',
  'description' text NOT NULL,
  PRIMARY KEY  ('game_id'),
  KEY 'genre' ('genre'),
  KEY 'date' ('date')
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

CREATE TABLE 'info' (
  'info_id' int(11) unsigned NOT NULL auto_increment,
  'game_id' int(11) unsigned NOT NULL default '0',
  'text' text NOT NULL,
  'date' datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  ('info_id'),
  KEY 'date' ('date'),
  KEY 'game_id' ('game_id')
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;


Как можно вывести все игры, и к ним всё инфу из таблицы info у которой game_id равен id игры.

Должно получится типа:


- Игра 1
   - Инфа 1 к игре 1
   - Инфа 2 к игре 1
   - Инфа 3 к игре 1
- Игра 2
   - Инфа 1 к игре 2
   - Инфа 2 к игре 2
   - Инфа 3 к игре 2
и т.д.


Было бы вообще замечательно, если бы это все уместилось в один шутрый запрос :)))

   
 
 автор: napTu3aH   (09.10.2005 в 18:35)   письмо автору
 
   для: JIEXA   (09.10.2005 в 18:03)
 

Если инфо к играм это поле "text" из таблицы "info", то вам сможет помоч этот запрос

SELECT games.name AS game,
info.text AS information
FROM games, info
WHERE info.game_id=games.id
ORDER BY games.name ASC

   
 
 автор: JIEXA   (16.10.2005 в 10:32)   письмо автору
 
   для: napTu3aH   (09.10.2005 в 18:35)
 

нет, данный запрос слишком много мусора получает да и работать с ним неудобно. Может есть другие варианты?

   
 
 автор: napTu3aH   (16.10.2005 в 11:06)   письмо автору
 
   для: JIEXA   (16.10.2005 в 10:32)
 

>нет, данный запрос слишком много мусора получает да и работать с ним неудобно. Может есть
>другие варианты?

Всмысле мусора?

   
 
 автор: cheops   (16.10.2005 в 15:16)   письмо автору
 
   для: JIEXA   (16.10.2005 в 10:32)
 

Попробуйте так
SELECT games.name AS game, 
info.text AS information 
FROM games, info 
WHERE info.game_id=games.id 
GROUP BY information 
ORDER BY games.name ASC

   
 
 автор: JIEXA   (16.10.2005 в 17:00)   письмо автору
 
   для: cheops   (16.10.2005 в 15:16)
 

дык мне же ещё нужно знать id из таблицы games и game_id из таблицы information :(((

   
 
 автор: napTu3aH   (16.10.2005 в 17:50)   письмо автору
 
   для: JIEXA   (16.10.2005 в 17:00)
 

Добавьте к условию тот идентификатор, который нужен

SELECT games.name AS game, 
info.text AS information 
FROM games, info 
WHERE info.game_id=games.id 
AND games.id =$id
GROUP BY information 
ORDER BY games.name ASC

Где переменная "$id" это идентификатор игры из таблицы "games"

   
 
 автор: cheops   (16.10.2005 в 20:07)   письмо автору
 
   для: napTu3aH   (16.10.2005 в 17:50)
 

Я так понял требуется такой запрос
SELECT games.name AS game, 
info.text AS information,
info.game_id AS id
FROM games, info 
WHERE info.game_id=games.id 
GROUP BY information 
ORDER BY games.name ASC

   
 
 автор: JIEXA   (16.10.2005 в 21:21)   письмо автору
 
   для: cheops   (16.10.2005 в 20:07)
 

почти... ещё нужно выводить game_id из таблицы information

   
 
 автор: cheops   (17.10.2005 в 00:56)   письмо автору
 
   для: JIEXA   (16.10.2005 в 21:21)
 

Хм... так последний запрос вроде это и делает
info.game_id AS id

только называет его id...

   
Rambler's Top100
вверх

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