Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 110
1

Вывести последние 5 сообщений

08.09.2016, 12:40. Показов 532. Ответов 7
Метки нет (Все метки)

Здравствуйте друзья!
Возникла проблема, которую никак не могу решить.
Есть работающий скрипт, который выводит то и что нужно и в таком виде как нужно
 Комментарий модератора 
Ссылки запрещены.

Но никак не могу сделать вывод последних, к примеру 5 сообщений.
Т.е, мне представляется, что после вывода echo нужно как-то... все данные опять загнать в массив...
Подскажите куда смотреть!
Заранее всем спасибо!
Вот код:
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<?php
/*
Copyright © 2009-2013 Commentics Development Team [commentics.org]
License: GNU General Public License v3.0
http://www.commentics.org/license/
*/ 
 
define('IN_COMMENTICS', 'true');
 
//set the path
$cmtx_path = '';
 
/* Database Connection */
require 'includes/db/connect.php'; //connect to database
if (!$cmtx_db_ok) { die(); }
 
//load functions file
require 'includes/functions/page.php';
 
//load language file
require 'includes/language/' . cmtx_setting('language_frontend') . '/rss.php';
 
if (!cmtx_setting('rss_enabled')) {
die(CMTX_RSS_FEATURE_DISABLED);
}
 
if (!cmtx_is_administrator()) { //if not administrator
if (cmtx_in_maintenance()) { //check if under maintenance
die();
}
}
 
header('Content-Type:text; charset=utf-8');
 
/* Error Reporting */
cmtx_error_reporting('includes/logs/errors.log');
 
/* Time Zone */
cmtx_set_time_zone(cmtx_setting('time_zone'));
 
if (isset($_GET['id']) && ctype_digit($_GET['id']) && cmtx_strlen($_GET['id']) < 10) { //if page ID is in URL and it validates
 
$id = (int) $_GET['id'];
$id = cmtx_sanitize($id, true, true);
$query = "SELECT * FROM `" . $cmtx_mysql_table_prefix . "comments` WHERE `is_approved` = '1' AND `page_id` = '$id' ORDER BY `dated` DESC"; //get page's items
 
} else {
$query = "SELECT * FROM `" . $cmtx_mysql_table_prefix . "comments` WHERE `is_approved` = '1' ORDER BY `dated` DESC"; //get all items
}
 
/* Last Build Date */
$lbd_query = $query . " LIMIT 1";
$lbd_query = mysql_query($lbd_query);
if (mysql_num_rows($lbd_query)) {
$lbd_result = mysql_fetch_assoc($lbd_query);
$last_build_date = date("r", strtotime($lbd_result["dated"]));
}
 
/* Most Recent */
if (cmtx_setting('rss_most_recent_enabled')) {
$query .= " LIMIT " . cmtx_setting('rss_most_recent_amount');
}
 
$result = mysql_query($query);
echo'<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Документ без названия</title>
<style>
.small_gravatar img {
border-radius: 30px;
margin-right: 14px;
margin-top: -29px;
width: 33px;
}
p.small_gravatar {
 
}
 
.small {
margin-top: 133px;
width: 200px;
font-size: smaller;
}
</style>
</head>
<body>
<a href="http://dwweb.ru/comments/1.html">http://dwweb.ru/comments/1.html</a>
<div class="small">';
 
while ($comments = mysql_fetch_assoc($result)) 
{
$pages_query = mysql_query("SELECT * FROM `" . $cmtx_mysql_table_prefix . "pages` WHERE `id` = '" . $comments["page_id"] . "'");
$pages = mysql_fetch_assoc($pages_query);
$title = $comments["name"];
$link = $pages["url"];
$comment = $comments["comment"];
$dated = date($comments["dated"]);
$email = $comments["email"];
$gravatar_echo = '<p class="small_gravatar"><img src="'. "https://www.gravatar.com/avatar/".md5( strtolower( trim( "$email " ) ) ) .'.png'. '" ></p>' ;
//возвращаем комментарии без тегов
$comment= strip_tags($comment);
 
//режем комментарии до 10 слов
 
$array = explode(" ",$comment); // перерабатываем строку в массив
$array = array_slice($array,0,10); // выбираем первые 5 слов-элементов
$newtext = implode(" ",$array); // массив снова перерабатываем в строку
 
echo $gravatar_echo
.$title
." пишет "
. $newtext
.'<a href="'
.$link
.'"> далее </a>' 
. "<p>"
. $dated 
."</p><br><br>\n";
}
;?>
</div>
</body>
</html>
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.09.2016, 12:40
Ответы с готовыми решениями:

Хотела что бы выводились последние пять сообщений из базы данных
Хотела что бы выводились последние пять сообщений из базы данных (в гостевой книге),написала: ...

Вывести на экран последние N слов из файла (слова вывести в строчку)
В задании просят вывести определённое количество слов с конца текстового файла. Решил пойти простым...

Вывести последние события
Доброго времени суток. Делаю отчет по событиям покупателей, необходимо сделать флажок отбора,...

Вывести последние 10 элементов массива
Здравствуйте! Помогите плз с заданием. Имеется массив , но не известен его размер. Надо вывести...

7
25 / 25 / 20
Регистрация: 12.05.2016
Сообщений: 181
08.09.2016, 13:02 2
Вот пример:
PHP
1
2
3
4
$arr = array('1','2','3','4');
for($i = count($arr)- 2;$i<count($arr);$i++){
    echo $arr[$i];
}
0
2139 / 1631 / 831
Регистрация: 10.01.2015
Сообщений: 5,144
08.09.2016, 13:12 3
Цитата Сообщение от Marrex Посмотреть сообщение
вывод последних, к примеру 5 сообщений.
Из БД? Оператор LIMIT.
0
Фрилансер
Эксперт JSЭксперт HTML/CSSЭксперт PHP
1842 / 1339 / 598
Регистрация: 12.01.2011
Сообщений: 5,410
08.09.2016, 13:18 4
MySQL
1
ORDER BY `id` DESC LIMIT 5
0
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 110
08.09.2016, 13:58  [ТС] 5
Во все, какие есть запросы сувал ORDER BY `id` DESC limit 5... никак не реагирует...
id менял тоже...
0
2139 / 1631 / 831
Регистрация: 10.01.2015
Сообщений: 5,144
08.09.2016, 14:35 6
Цитата Сообщение от Marrex Посмотреть сообщение
PHP
1
$lbd_query = $query . " LIMIT 1"; //строка 52
А вот это к какому запросу относится? Тут лимит 1. Может, из-за этого 5 последних не выводится???
0
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 110
08.09.2016, 16:30  [ТС] 7
Об этом и говорю, что LIMIT никак и нигде не реагирует...гаденыш!
Но!
Решение нашлось - простое, как все гениальное...
Получаем все данные в массив...
И выводим первые 5 элементов массива
PHP
1
2
3
4
5
6
7
8
<?
$lines = file("наш_файл_с_комментами");
    echo $lines[0] ;
    echo $lines[1] ;
    echo $lines[2] ;
    echo $lines[3] ;
    echo $lines[4] ;
?>
0
Фрилансер
Эксперт JSЭксперт HTML/CSSЭксперт PHP
1842 / 1339 / 598
Регистрация: 12.01.2011
Сообщений: 5,410
08.09.2016, 16:35 8
Цитата Сообщение от Marrex Посмотреть сообщение
$lines = file("наш_файл_с_комментами");
* * echo $lines[0] ;
* * echo $lines[1] ;
* * echo $lines[2] ;
* * echo $lines[3] ;
* * echo $lines[4] ;
PHP
1
2
3
4
5
foreach($lines as $k=>$v) {
if($k!=5) 
echo $v;
 else break;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.09.2016, 16:35
Помогаю со студенческими работами здесь

Как вывести последние 5 записей?
Нужно вывести последние 5 записи, но LIMIT выдает ошибку. SELECT ДатаРаботы, ФормаРаботы, Сумма,...

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

В com-файле вывести последние 10 байт
Помогите, пожалуйста! Дано задание, в сом файле вывести последние 10 байт. Вроде все логично в...

Как вывести последние n записей из бд??
Исрользуется POSTGRESQL. КАК вывести последние n записей, не тормоша и читая при этом все...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru