Как сделать... облако тегов php + mysql...

Тема в разделе "Как сделать...", создана пользователем antiadmin, 5 окт 2009.

Статус темы:
Закрыта.
  1. antiadmin

    antiadmin

    Регистр.:
    24 май 2008
    Сообщения:
    395
    Симпатии:
    23
    Имеем код
    PHP:
    <?php
        
    include('conf.php');
        
    mysql_connect(DBHOSTDBUSERDBPASS);
    echo 
    mysql_error();
        
    mysql_select_db(DBNAME);
    echo 
    mysql_error();

        
    mysql_query('drop table if exists `' DBPREFIX 'news`');
        
    mysql_query('CREATE TABLE `' DBPREFIX 'news` (
            `news_id` int(11) not null auto_increment,
            `news_title` varchar(100) not null,
            `news_anons` text,
            `news_text` text,
            `news_added` int(11) not null default \'0\',
            PRIMARY KEY (`news_id`)
        ) type=MyISAM'
    );
    echo 
    mysql_error();

        
    mysql_query('drop table if exists `' DBPREFIX 'tags`');
        
    mysql_query('CREATE TABLE `' DBPREFIX 'tags (
      `id` INT(11) NOT NULL auto_increment,
      `news_id` INT(11) NOT NULL default \'0\',
      `tag` varchar(100) NOT NULL default \'\',
      PRIMARY KEY  (`id`),
      KEY `news_id` (`news_id`),
      KEY `tag` (`tag`)
    ) TYPE=MyISAM'
    );
    echo 
    mysql_error();

    ?>
    Таблицу tags выдрал то ли из WordPress, то ли из DLE, вопрос, что дальше? :D
    Не могу понять, допустим к тегу под id 12 относится около 3000 новостей, как записать их айди в поле news_id колонки tags?
     
  2. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    Делается три таблицы:

    1) Новость - id_новости
    2) тэг - id_тэга [ - число постов с тегом , не обязательно, но ОЧЕНЬ упростит работу ]
    3) id_новости - id_тэга

    если новость относится к нескольким тэгам в таблицу 3 пишется
    id_новости1 - id_тэга1
    id_новости1 - id_тэга2
    id_новости1 - id_тэга3
    ну и т.д.

    вообще если ты взял таблицу изз WP -- посмотри сорцы виджета облака тегов ( DLE -- тоже самое )

    PS смотри

    Перейти по ссылке
    Перейти по ссылке
     
    antiadmin нравится это.
Статус темы:
Закрыта.