Нужен алгоритм: статья на несколько разделов

(Ответов: 25, Просмотров: 1136)
Страница 1 из 3 123 Последняя
  1. Студент Аватар для Bukmeker
    • Регистрация: 27.10.2012
    • Сообщений: 74
    • Репутация: 6
    • Webmoney BL: ?
    Всех в прошедшими.

    Срочно нужен алгоритм по которому одну статью можно отнести к разным категориям.
    Сейчас это выглядит так:

    • Создаем категорию.
    • Создаем статью и относим эту статью к категории.

    Т.е. в таблице article есть колонка cid в которой лежит id категории.

    Я могу сделать вида: в таблице article в колонке cid будут id категорий через запятую. Например, 1,2,15,. Но тогда встает вопрос выборки

    Код:
    $cat = $_GET['cat'] . ",";
    SELECT id FROM article WHERE cid LIKE '%$cat%'
    Кто знает, подскажите.
    • 0
  2. Sapienti sat Аватар для brainix
    • Регистрация: 01.01.2013
    • Сообщений: 1,925
    • Записей в дневнике: 1
    • Репутация: 817
    • Webmoney BL: ?
    Можно сделать таблицу связку, так например связываются теги, но и это подойдет. Т.е.
    id id_article id_cat
    1 1 2
    2 1 3
    3 2 2
    4 2 5

    1 статья относится к 2 и 3 категории. 2 статья к 2 и 5.
    • 0
  3. Студент
    • Регистрация: 24.10.2012
    • Сообщений: 78
    • Репутация: 7
    Самый удобный способ это дополнительные таблицы
    • 0
  4. Студент Аватар для Bukmeker
    • Регистрация: 27.10.2012
    • Сообщений: 74
    • Репутация: 6
    • Webmoney BL: ?
    Я правильно Вас понял, запрос будет таким?

    Код:
    SELECT a.id FROM article AS a LEFT JOIN link AS l ON (a.id=l.id_article) WHERE l.id_cat='$_GET['cat']'
    • 0
  5. [web-developer] Аватар для cOAPerator
    • Регистрация: 22.02.2011
    • Сообщений: 615
    • Репутация: 111
    • Webmoney BL: ?
    Цитата Сообщение от l3x Посмотреть сообщение
    Самый удобный способ это дополнительные таблицы
    но не самы экономный в плане количества запросов

    Цитата Сообщение от Bukmeker Посмотреть сообщение
    Например, 1,2,15,.
    можно еще эксплодом разбирать и потом смотреть в таблице с категориями, к какой относится. тогда не нужна таблица соответствий. по крайней мере у меня так сделано..
    Последний раз редактировалось cOAPerator; 09.01.2013 в 11:56.
    • 0
  6. Студент Аватар для Bukmeker
    • Регистрация: 27.10.2012
    • Сообщений: 74
    • Репутация: 6
    • Webmoney BL: ?
    Цитата Сообщение от cOAPerator Посмотреть сообщение
    но не самы экономный в плане количества запросов
    одним запросом отбираем нужные статьи.

    Не совсем понял про explode.

    Есть страница (статья), она относится к разным категориям (1,2,15).
    Пользователь переходит в категорию id которой, например 2, т.е. $_GET['cat']==2
    Вариант SELECT a.id FROM article AS a LEFT JOIN link AS l ON (a.id=l.id_article) WHERE l.id_cat='$_GET['cat']' будет работать.

    А как будет выглядеть предложенный Вами вариант?
    • 0
  7. [web-developer] Аватар для cOAPerator
    • Регистрация: 22.02.2011
    • Сообщений: 615
    • Репутация: 111
    • Webmoney BL: ?
    Цитата Сообщение от Bukmeker Посмотреть сообщение
    А как будет выглядеть предложенный Вами вариант?
    примерно так:
    get_echo_cat($id_cat){
    $result = mysql_query("SELECT * FROM `таблица_с_категориями` WHERE `id_cat`='$id_cat'");
    $myrow = mysql_fetch_array($result);
    return $cat_name;
    }

    $categ = explode(",", $myrow['categ']);

    for ($i = 0; $i <= 7; $i++) {
    echo get_echo_cat($categ[$i]);
    }
    • 0
  8. Студент Аватар для Bukmeker
    • Регистрация: 27.10.2012
    • Сообщений: 74
    • Репутация: 6
    • Webmoney BL: ?
    $myrow['categ']
    а откуда этот массив взялся?
    • 0
  9. [web-developer] Аватар для cOAPerator
    • Регистрация: 22.02.2011
    • Сообщений: 615
    • Репутация: 111
    • Webmoney BL: ?
    Цитата Сообщение от Bukmeker Посмотреть сообщение
    а откуда этот массив взялся?
    ну это ваша строка в бд 1,2,15
    вы ее и разбираете
    • 0
  10. Студент Аватар для Bukmeker
    • Регистрация: 27.10.2012
    • Сообщений: 74
    • Репутация: 6
    • Webmoney BL: ?
    т.е. сначала я возьму из БД список категорий
    потом из $myrow['categ'] создам массив
    в цикле буду вызывать функцию, которая сделает запрос в БД и вернет мне категорию
    и так пока строка не кончится?
    в Вашем случае ограничение до 8 категорий включительно.
    не, по моему это будет очень нагружать сайт.
    • 0
Страница 1 из 3 123 Последняя

Похожие темы

Темы Раздел Ответов Последний пост
Алгоритм грабера
Web программирование 12 08.05.2012 17:22
Дубли разделов, удаление из индекса
Вопросы от новичков 2 21.01.2012 17:23
Рекомендации по оптимизации разделов сайта
Дайджест блогосферы 0 10.04.2011 19:27
Как работает алгоритм АГС
Дайджест блогосферы 0 24.04.2010 14:08

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры