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

Форум PHP

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

 

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

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

тема: Облако тегов
 
 автор: golovdinov   (15.05.2007 в 17:01)   письмо автору
 
 

Хочу сделать облако тегов как, например, здесь http://habr.ru/ (ну в общем вы наверное много где их видели). До самого не доходит :(
Итак, есть поле в таблице MySQL - tags, в нем теги вида tag, another tag, more tags. Надо как-то их посчитать.
Если даже у кого-то есть хоть малейшая идея - буду благодарен.

   
 
 автор: DEM   (15.05.2007 в 18:40)   письмо автору
 
   для: golovdinov   (15.05.2007 в 17:01)
 

Не севсем понял если честно (а сайт не загрузился :( )
Но попробуйте так
explode("," $arr['tags']);

Где $arr - это массив вашей таблицы.. А функция explode разделит содержимое поля text по запятым...

   
 
 автор: golovdinov   (15.05.2007 в 18:49)   письмо автору
 
   для: DEM   (15.05.2007 в 18:40)
 

Хм. У меня грузится, ну вот это должно пойти - http://cards.yandex.ru/.
Допустим буду действовать так:
<?
$get 
mysql_query ("SELECT tags FROM table");
$arr = array ();
while (
$tags mysql_fetch_array ($get)) {
  
$tags_arr explode (","$tags);
  foreach (
$tags_arr as $tagarray_push ($arrtrim($tag));
}
?>

Теперь есть массив с тегами, многие из которых повторяются. Как теперь (или вообще) посчитать сколько тега sometag и сколько тега enother tag?

   
 
 автор: NovikovMA   (15.05.2007 в 18:57)   письмо автору
 
   для: golovdinov   (15.05.2007 в 18:49)
 

а зачем так? Ну делаешь запрос (чтобы выбрать)

Select *
FROM tags
WHERE tag=\''.$tag.'\'

например...
Так точно быстрее будет, чем разбирать массив с помощью PHP

А чтобы посчитать, это надо делать так:


<?
$q
запрос;
$r=@mysql_query($q);
$count = @mysql_num_rows ($r);
?>

   
 
 автор: golovdinov   (15.05.2007 в 19:07)   письмо автору
 
   для: NovikovMA   (15.05.2007 в 18:57)
 

Так не пойдет точно. Во-первых, откуда я узнаю сам тег, а во-вторых, в столбце не обин тег, а множество и через запятую, поэтому SELECT tag FROM Select * FROM tags WHERE tag=$tag не пойдет :((

+ заметил ошибку в своем коде:
$tags_arr = explode (",", $tags['tags']);

   
 
 автор: golovdinov   (15.05.2007 в 21:19)   письмо автору
 
   для: golovdinov   (15.05.2007 в 19:07)
 

Ну неужели ни у кого нет никаких соображений??? Ведь делают же как-то.

   
 
 автор: Trianon   (15.05.2007 в 19:02)   письмо автору
 
   для: golovdinov   (15.05.2007 в 18:49)
 

В БД списки хрянят не в ячейках, а в столбцах.

   
 
 автор: Nemesis   (15.05.2007 в 21:32)   письмо автору
 
   для: golovdinov   (15.05.2007 в 17:01)
 

Есть книга в формате .chm, издательства OReilly Building Tag Clouds in Perl and PHP May, 2006 года, можно взять отсюда http://rapidshare.com/files/18837060/OReilly.Building.Tag.Clouds.in.Perl.and.PHP.May.2006.chm.

   
 
 автор: golovdinov   (16.05.2007 в 14:33)   письмо автору
 
   для: Nemesis   (15.05.2007 в 21:32)
 

В этой книге не идет речь (насколько я понял) о том, где хранятся и как собираются теги, а написано только лишь о том, как сделать их разного размера - это я уже знаю. Мне надо только посчитать их.
Может у ког-то есть другая идея, как хранить теги - напишите, умоляю.

   
Rambler's Top100
вверх

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