Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для Mr-Sergio
0 / 0 / 1
Регистрация: 22.12.2012
Сообщений: 71

PHP Tags

21.05.2013, 15:01. Показов 1290. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем здравствуйте,
Уже битый час ничего не получается в создании тегов для новостей сайта. Очень прошу помогите.
1. Mysql
MySQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
CREATE TABLE IF NOT EXISTS `news_ru` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL DEFAULT '',
  `date` date NOT NULL DEFAULT '0000-00-00',
  `text` text NOT NULL,
  `text_m` varchar(255) NOT NULL,
  `img_l` varchar(255) NOT NULL,
  `img_s` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
 
--
-- Dumping data for table `news_ru`
--
 
INSERT INTO `news_ru` (`id`, `title`, `date`, `text`, `text_m`, `img_l`, `img_s`) VALUES
(1, 'При посадке во "Внуково" у самолета Boeing 737 авиакомпании "ЮТэйр" загорелись колеса', '2013-05-20', '<p>Сегодня в аэропорту Внуково совершил аварийную посадку самолет Boeing 737 авиакомпании «ЮТэйр», летевший в Москву из Ставрополя.</p>\r\n\r\n<p>Инцидент произошел около 8 утра. При посадке у самолета разрушились и загорелись колеса на одной из стоек шасси. Несмотря на случившееся, пилоты смогли остановить самолет в пределах взлетно-посадочной полосы. Все пассажиры и члены экипажа были эвакуированы по аварийным трапам.</p>\r\n\r\n<p>Аэропорт «Внуково» из-за ЧП пришлось закрыть на два часа, а прибывающие рейсы направить в другие аэропорты. Всего было распределено 23 прибывающих рейса. 21 из них направили в «Домодедово», а остальные два – в аэропорты Нижнего Новгорода и Ярославля.</p>\r\n\r\n<p>В штатном режиме аэропорт заработал через два часа после инцидента. За это время Boeing 737 эвакуировали со взлетно-посадочной полосы. В Росавиации сообщили, что создана специальная комиссия для расследования происшествия.</p>', 'Сегодня в аэропорту Внуково совершил аварийную посадку самолет Boeing 737 авиакомпании «ЮТэйр», летевший в Москву из Ставрополя.', 'http://airblog.x10.mx/news/1/img/l.jpg', 'http://airblog.x10.mx/news/1/img/s.jpg');
 
-- --------------------------------------------------------
 
--
-- Table structure for table `news_ru_tags`
--
 
CREATE TABLE IF NOT EXISTS `news_ru_tags` (
  `news_ru_id` int(11) NOT NULL DEFAULT '0',
  `tag_id` int(11) NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
--
-- Dumping data for table `news_ru_tags`
--
 
INSERT INTO `news_ru_tags` (`news_ru_id`, `tag_id`) VALUES
(1, 1);
 
-- --------------------------------------------------------
 
--
-- Table structure for table `tags`
--
 
CREATE TABLE IF NOT EXISTS `tags` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
 
--
-- Dumping data for table `tags`
--
 
INSERT INTO `tags` (`id`, `name`) VALUES
(1, 'Гражданская авиация'),
(2, 'Военная Авиация');
2. Код запроса (там подскажите еще плз с датой (пытаюсь из даты вытащить только месяц(текст) и отдельно номер дня))
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
 
require_once('php/connect.php'); 
$db = new db();
DEFINE('ITEMS_PER_PAGE', 5);
mysql_query ("SET NAMES utf8");
mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'"); 
$query = "SELECT COUNT(*) FROM news_ru";
$res = mysql_query( $query );
$total = mysql_result( $res, 0, 0 );
if ( isset($_GET['page']) ) {
$page = (int)$_GET['page'];
if ( $page < 1 ) $page = 1;
} else {
$page = 1;
}
$cnt_pages = ceil( $total / ITEMS_PER_PAGE );
if ( $page > $cnt_pages ) $page = $cnt_pages;
$start = ( $page - 1 ) * ITEMS_PER_PAGE;
$query = "SELECT * FROM news_ru, news_ru_tags, tags ORDER BY date  DESC LIMIT ".$start.", ".ITEMS_PER_PAGE;
$res = mysql_query( $query );
while( $row = mysql_fetch_array( $res ) )
{
echo '<div class="blog-post"><div class="blog-image"><a href="'.$row['link'].'"><img alt="'.$row['title'].'" src="'.$row['img_l'].'" /></a>';
echo '<div class="blog-date"><span class="date">'.$row['date ['mon']'].'<br />'.$row['date ['mday']'].'</span></div></div>';
echo '<div><span><a href="'.$row['link'].'">'.$row['id'].'</a></span>;
echo '<div class="blog-content"><h2><a href="'.$row['link'].'">'.$row['text_m'].'...</a></h2></div></div>';
echo '<div class="blog-info"><div class="post-pinfo"><span class="icon-tags"></span>  . $post->tags .</div><a class="button-small" href="'.$row['link'].'">Подробнее</a>'<div class="clear"></div></div></div><div class="block-divider"></div>;
}
Вот как вытащить теги к каждой записи =( Подскажите плз.
Заранее всем спасибо огромное

Добавлено через 15 часов 5 минут
Или подскажите плз. хороший туториал
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.05.2013, 15:01
Ответы с готовыми решениями:

По поводу strip tags
Всем добрый день, короче привед) Проблемка такая, более год назад мне сверстали в одной организации сайт, я им почти не пользовался...

Способы использование HTML Tags
Доброй ночи , такая проблема возникла! Мне вот не нравится в php классах использовать html тэги Пример: class TestList {...

meta-tags
РНР не знаю, признаюсь честно... Вопрос тем, кто с этим хоть чуть-чуть знаком, тк подозреваю, что вопрос в принципе простой и глупый. Тем...

4
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
21.05.2013, 16:11
нужен оператор join
1
46 / 46 / 15
Регистрация: 02.10.2009
Сообщений: 158
21.05.2013, 16:27
... на первый взгляд косяки:

PHP
1
$row['date ['mon']'] + $row['date ['mday']']
- непонятно шо это
PHP
1
$row['link']
- где это поле в БД?
PHP
1
$db = new db();
- тоже непонятно откуда тут ООП
PHP
1
echo '<div><span><a href="'.$row['link'].'">'.$row['id'].'</a></span>;
- нет закрывающейся кавычки после спан
PHP
1
echo '<div class="blog-info">.....'">Подробнее</a>'<div class="clear"></div></div></div><div class="block-divider"></div>
- кавычки нет в конце
PHP
1
$post->tags
- шо-то из ООП

... в общем немного поправил - работает пока без ошибок, видимых:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
header('Content-Type: text/html; charset=utf-8');
 
require_once('php/connect.php'); 
//$db = new db();
DEFINE('ITEMS_PER_PAGE', 5);
mysql_query ("SET NAMES utf8");
mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'"); 
$query = "SELECT COUNT(*) FROM news_ru";
$res = mysql_query( $query );
$total = mysql_result( $res, 0, 0 );
if ( isset($_GET['page']) ) {
$page = (int)$_GET['page'];
if ( $page < 1 ) $page = 1;
} else {
$page = 1;
}
$cnt_pages = ceil( $total / ITEMS_PER_PAGE );
if ( $page > $cnt_pages ) $page = $cnt_pages;
$start = ( $page - 1 ) * ITEMS_PER_PAGE;
$query = "SELECT * FROM news_ru, news_ru_tags, tags ORDER BY date  DESC LIMIT ".$start.", ".ITEMS_PER_PAGE;
$res = mysql_query( $query );
while( $row = mysql_fetch_array( $res ) )
{
$date = date_create($row['date']);
//echo date_format($date, 'Y-m-d H:i:s');
 
echo '<div class="blog-post"><div class="blog-image"><a href="#"><img alt="'.$row['title'].'" src="'.$row['img_l'].'" /></a>';
echo '<div class="blog-date"><span class="date">'.date_format($date, 'd').'<br />'.date_format($date, 'm').'</span></div></div>';
echo '<div><span><a href="#">'.$row['id'].'</a></span>';
echo '<div class="blog-content"><h2><a href="#">'.$row['text_m'].'...</a></h2></div></div>';
echo '<div class="blog-info"><div class="post-pinfo"><span class="icon-tags"></span></div><a class="button-small" href="#">Подробнее</a><div class="clear"></div></div></div><div class="block-divider"></div>';
}
 
?>
1
 Аватар для Mr-Sergio
0 / 0 / 1
Регистрация: 22.12.2012
Сообщений: 71
21.05.2013, 16:32  [ТС]
Спасибо огромное....Надо быть внимательнее
0
46 / 46 / 15
Регистрация: 02.10.2009
Сообщений: 158
22.05.2013, 01:24
_header.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
include("incl/conn.php");
 
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><?=$title; ?></title>
<link rel="stylesheet" type="text/css" href="incl/style.css"/>
</head>
<body>
<div id="container">
  <div id="header"> <a href="index.php">Наши новости</a> </div>
  <div id="menu"> <a href="index.php">ГЛАВНАЯ</a> &nbsp; &nbsp; &nbsp; &nbsp; <a href="news.php">НОВОСТИ</a> &nbsp; &nbsp; &nbsp; &nbsp; </div>
  <div id="sidebar">
    <h1>Тэги</h1>
    <?php //тут выводим тэги
    $query="SELECT `id`, `t_name` FROM `tags`"; 
    $result=mysql_query($query);
    
    echo "<ul>";
    while($row=mysql_fetch_assoc($result)) {
        //обратите внимание, как формируется ссылка для $_GET-запроса
        //файл.php?[ключ1]=[значение]&[ключ2]=[значение]... и т.д. можно передавать переменные со значениями, а на странице файл.php значения ловяться в $_GET['ключ1']...
        echo '<li><a href="news.php?tag=1&id='.$row['id'].'">'.$row['t_name'].'</a></li>'; 
    }
    echo "</ul>";
    ?>
    
  </div>
  <div id="main">
_footer.php
PHP
1
2
3
4
5
</div>
  <div id="footer"> &copy;2013 Cамый простой шаблон &nbsp;<span class="separator">|</span>&nbsp; <a href="#">sd</a> </div>
</div>
</body>
</html>
и страница news.php - наша средняя часть
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php 
$title = "Новости";
include("_header.php");
?>
 
<?php
if(isset($_GET['tag'])){ //если есть ключ tag, то выполняем вывод тех новостей, в которых содержится наш тэг
    $query="SELECT t1.id, t1.topic, t1.text, t1.foto, t1.date, t1.author, t1.tags_id, t2.t_name
            FROM news AS t1
            LEFT JOIN tags AS t2 ON (t1.tags_id = t2.id) 
            WHERE t2.id=".$_GET['id'].";"; 
    $result=mysql_query($query);
    
    echo '<div id="news">';
    while($row=mysql_fetch_assoc($result)) {
        
        echo '<h1>'.$row['topic'].'</h1><b>'.$row['date'].'</b> posted by <b>'.$row['author'].'</b> in tag <b>'.$row['t_name'].'</b><br/><br/>';
        if($row['foto']){
            echo '<img src="img/stories/'.$row['foto'].'" alt="'.$row['topic'].'">';
        }
        echo $row['text'].'<br/><br/><br/>';
    }
    echo '</div>';
 
}else{ //иначе, если нет ключа tag - выводим все посты новостей
    $query="SELECT t1.id, t1.topic, t1.text, t1.foto, t1.date, t1.author, t1.tags_id, t2.t_name
            FROM news AS t1
            LEFT JOIN tags AS t2 ON (t1.tags_id = t2.id);"; 
    $result=mysql_query($query);
    
    echo '<div id="news">';
    while($row=mysql_fetch_assoc($result)) {
        
        echo '<h1>'.$row['topic'].'</h1><b>'.$row['date'].'</b> posted by <b>'.$row['author'].'</b> in tag <b>'.$row['t_name'].'</b><br/><br/>';
        if($row['foto']){
        echo '<img src="img/stories/'.$row['foto'].'" alt="'.$row['topic'].'">';
        }
        echo $row['text'].'<br/><br/><br/>';
    }
    echo '</div>';
    
}
?>
 
<?php include("_footer.php");?>
БД имеет такой вид
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
-- Дамп структуры для таблица news.news
DROP TABLE IF EXISTS `news`;
CREATE TABLE IF NOT EXISTS `news` (
  `id` INT(10) NOT NULL AUTO_INCREMENT,
  `topic` VARCHAR(50) NOT NULL,
  `text` text NOT NULL,
  `foto` VARCHAR(200) NOT NULL,
  `date` DATE NOT NULL,
  `author` VARCHAR(50) NOT NULL,
  `tags_id` INT(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
 
-- Дамп данных таблицы news.news: ~0 rows (приблизительно)
/*!40000 ALTER TABLE `news` DISABLE KEYS */;
INSERT INTO `news` (`id`, `topic`, `text`, `foto`, `date`, `author`, `tags_id`) VALUES
    (1, 'Хоккейное "Динамо" продолжает терять лидеров: кома', 'Минское "Динамо" продолжает терять лидеров минувшего сезона. Очередным хоккеистом, покинувшим стан "зубров", стал американский форвард Тим Стэплтон.', 'dinamo_vstrecha_009.jpg', '2013-05-21', 'admin', 1),
    (2, 'Дацюк помог "Детройту" выйти вперед в серии с "Чик', 'Третья встреча полуфинала Западной конференции между "Детройтом" и "Чикаго" завершилась победой "Красных крыльев".', '', '2013-05-21', 'admin', 1),
    (3, 'Фотофакт: "Тариф "Домосед": 80 и более км/ч в горо', 'Оригинальные билборды с тарифами для нарушителей скоростного режима в городе установила ГАИ Гомеля.', 'gom.jpg', '2013-05-21', 'admin', 2),
    (4, 'Пикап Ford F-150 превратили в 8-местный внедорожни', 'Американское тюнинг-ателье Hennessey Performance представило пикап Ford F-150 SVT Raptor, переделанный в восьмиместный внедорожник.', 'f56fd05104e89b429f8709746e330.jpeg', '2013-05-21', 'admin', 2),
    (5, 'Белгазпромбанк купил на Sotheby’s 4 картины Шагала', 'Удачно сложились недавние торги современного искусства на нью-йоркском аукционе Sotheby’s для Белгазпромбанка, который приобрел четыре ценных лота. Художественную коллекцию банка в ближайшее время пополнят картины Марка Шагала и Хаима Сутина, созданные в период расцвета этих художников. ', 'shagal_1.jpg', '2013-05-21', 'admin', 3),
    (6, 'Определился победитель конкурса "фотожаб" на "Евро', 'Удачно сложились недавние торги современного искусства на нью-йоркском аукционе Sotheby’s для Белгазпромбанка, который приобрел четыре ценных лота. Художественную коллекцию банка в ближайшее время пополнят картины Марка Шагала и Хаима Сутина, созданные в период расцвета этих художников. ', '18pn9dzgulw_tatiana_belochka.jpg', '2013-05-21', 'admin', 3);
 
-- Дамп структуры для таблица news.tags
DROP TABLE IF EXISTS `tags`;
CREATE TABLE IF NOT EXISTS `tags` (
  `id` INT(10) NOT NULL AUTO_INCREMENT,
  `t_name` VARCHAR(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
 
-- Дамп данных таблицы news.tags: ~0 rows (приблизительно)
 
INSERT INTO `tags` (`id`, `t_name`) VALUES
    (1, 'Спорт'),
    (2, 'Авто'),
    (3, 'Культура'),
    (4, 'Общество');
В приложении файлики. В папке incl посмотрите и поменяйте параметры подключения к БД на свои в файле conn.php
Вложения
Тип файла: zip news.zip (296.4 Кб, 3 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.05.2013, 01:24
Помогаю со студенческими работами здесь

Установка библиотеки Tags
Помогите установить библиотеку tags. Скачал архив, там файлы вида ID3v2Library.pas и тд. Вроде закинул pas файлы в папку lib, но в uses...

Вытащить tags из mp3 файла
В общем никак не пойму где ошибка в коде. Помогите пожалуйста. private final int TAG_BYTE_VALUES={30,30,30,4,30}; private final...

Не рабочие папки trunk bracnhes tags
Версия 1.6.11 Репозиторий создается, копия создается, все работает, единственное что, я создаю репозиторий, потом в той репе я создаю...

Для чего нужны custom Tags ?
Для чего вы используете custom Tags? Приведите конкретные примеры.

Custom Tags как их юзать на CFM ?
в ASP'е есть такие процедуры и функциии sub sub_name end sub function function_name end function как это пишется в CFM...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru