За последние 24 часа нас посетили 30488 программистов и 1808 роботов. Сейчас ищут 822 программиста ...

Связные таблицы

Тема в разделе "PHP для новичков", создана пользователем VaneS, 23 мар 2012.

  1. VaneS

    VaneS Активный пользователь

    С нами с:
    16 ноя 2011
    Сообщения:
    636
    Симпатии:
    4
    Адрес:
    Россия
    Здравствуйте, у меня вот такая проблема. в таблице №1 храниться список категорий, а во второй таблице храниться информация которая должна быть разделена быть по этим категориям! Я так понял мне нужны связные таблицы. Напишите пожалуйста пример такого скрипта работы со связными таблицами, а если быть еще точнее то как сделать выборку? Заранее большое спасибо
     
  2. biperch

    biperch Активный пользователь

    С нами с:
    6 июн 2009
    Сообщения:
    28
    Симпатии:
    0
    select table1.id, table2.des from table1 INNER JOIN table2 on table1.id = table2.id
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Пример простейшего перечня товаров.
    Категории:
    Код (Text):
    1.  
    2. CREATE TABLE `categories` (
    3.   `id` int(10) NOT NULL AUTO_INCREMENT,
    4.   `name` varchar(128) NOT NULL,
    5.   PRIMARY KEY (`id`)
    6. );
    7.  
    8. INSERT INTO `categories` VALUES ('1', 'Крепеж');
    9. INSERT INTO `categories` VALUES ('2', 'Сантехника');
    10. INSERT INTO `categories` VALUES ('3', 'Химия');
    Товары:
    Код (Text):
    1.  
    2. CREATE TABLE `items` (
    3.   `id` int(10) NOT NULL AUTO_INCREMENT,
    4.   `cat_id` int(10) NOT NULL,
    5.   `name` varchar(128) NOT NULL,
    6.   `price` double NOT NULL,
    7.   PRIMARY KEY (`id`),
    8.   KEY `inx_items_cat_id` (`cat_id`)
    9. );
    10.  
    11. INSERT INTO `items` VALUES ('1', '1', 'Шуруп ф5 10mm', '0.2');
    12. INSERT INTO `items` VALUES ('2', '1', 'Шуруп ф6 10mm', '0.25');
    13. INSERT INTO `items` VALUES ('3', '1', 'Гвоздь ф3 20mm', '0.1');
    14. INSERT INTO `items` VALUES ('4', '2', 'Смеситель \"Элита\"', '3000');
    15. INSERT INTO `items` VALUES ('5', '2', 'Унитаз \"Форс 2000\"', '9500');
    16. INSERT INTO `items` VALUES ('6', '3', 'Жидкость \"Крот\"', '50');
    Типичные операции над ними:
    вывод всех товаров с именами категорий
    Код (Text):
    1.  
    2. SELECT `c`.`name` AS cat_name, `i`.*
    3. FROM `items` AS `i` INNER JOIN
    4.      `categories` AS `c` ON `c`.`id` = `i`.`cat_id`
    5. ORDER BY `i`.`cat_id`
    вывод только одной категории товаров
    Код (Text):
    1.  
    2. SELECT `c`.`name` AS cat_name, `i`.*
    3. FROM `items` AS `i` INNER JOIN
    4.      `categories` AS `c` ON `c`.`id` = `i`.`cat_id`
    5. WHERE `i`.cat_id = 2
    подсчет сколько наименований в каждой из категорий
    Код (Text):
    1.  
    2. SELECT `c`.`id`, `c`.`name` AS cat_name, `ia`.`count`
    3. FROM `categories` AS `c` INNER JOIN
    4.      (SELECT `cat_id`, count(*) AS `count`
    5.       FROM `items`
    6.       GROUP BY `cat_id`) AS `ia` ON `ia`.cat_id = `c`.`id`
     
  4. VaneS

    VaneS Активный пользователь

    С нами с:
    16 ноя 2011
    Сообщения:
    636
    Симпатии:
    4
    Адрес:
    Россия
    Спасибо большое, тока вот как сделать выборку связной таблицы по определенной категории в php? можете написать цикл такой выборки? Заранее большое спасибо!
     
  5. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Ну уж нет, давай сам за учебники!
    Твой препод
     
  6. VaneS

    VaneS Активный пользователь

    С нами с:
    16 ноя 2011
    Сообщения:
    636
    Симпатии:
    4
    Адрес:
    Россия
    Да вот второй день уже сижу, весь инет облазил! А может посоветуете какую нибудь книгу? Сегодня специально в библиотеку даже ходил, там нашел только сам принцип выборки из таблиц, я это и до этого знал....а вот со связными таблицами нет ничего...... а мне очень надо....
     
  7. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    тебе надо книгу уровня "php за 24 часа". пример данных я тебе дал, сцуко, осталось научиться писать простейшие проги на PHP. этому тебя на форуме не научат.
     
  8. VaneS

    VaneS Активный пользователь

    С нами с:
    16 ноя 2011
    Сообщения:
    636
    Симпатии:
    4
    Адрес:
    Россия
    )))) Да не нужно мне изучать весь php))))) А только вот это мне не понятно!!!!!