X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Отображение одинаковых результатов
UnderStorm
UnderStorm
Topic Starter сообщение 16.12.2010, 0:43; Ответить: UnderStorm
Сообщение #1


Написал код который выводит 5 сообщений из форума
[PHP]<?php
require_once ( dirname( __FILE__ ).'/incs/phpbbconf.php');
require_once ($_SERVER['DOCUMENT_ROOT'].'/'.PHPBBDIR.'/config.php');

$phpbbdb = mysql_connect($dbhost, $dbuser, $dbpasswd, $dbport);
if (!$phpbbdb) {
die ('Не удалось соединиться с базой данных, проверьте правильность настроек');
}

$phpbbdb_select = mysql_select_db($dbname);
if (!$phpbbdb_select) {
die ('Не удалось выбрать базу данных, проверьте правильность настроек');
}

echo <<<HTML
<table width="100%" border="1">
<tr><td>Тема</td><td>Автор</td><td>Ответил</td></tr>
HTML;

$pselect = 'SELECT * FROM ' . $table_prefix . 'posts LIMIT 0 , 5';
$presult = mysql_query($pselect);

while ($presult_row = mysql_fetch_row(($presult))) {
$topicid = $presult_row[1];
$posterid = $presult_row[3];

$select = 'SELECT * FROM ' . $table_prefix . 'users WHERE user_id = ' . $posterid;
$tselect = 'SELECT * FROM ' . $table_prefix . 'topics WHERE topic_id = ' . $topicid;
$result = mysql_query($select);
$tresult = mysql_query ($tselect);


while ($result_row = mysql_fetch_row(($result)) and $tresult_row = mysql_fetch_row (($tresult)) ) {

$aselect = 'SELECT * FROM ' . $table_prefix . 'users WHERE user_id = ' . $tresult_row[7];
$aresult = mysql_query ($aselect);

echo '<tr>';
echo '<td>' . $tresult_row[6] . '</td>';
while ($aresult_row = mysql_fetch_row(($aresult))){
echo '<td>' . $result_row[7] . '</td>';
}
echo '<td>' . $result_row[7] . '</td>';
echo '</tr>';
}
}
echo '</table>';
mysql_close ($phpbbdb);
?>[/PHP]

http://kvartal.convex.ru/phpbbnewposts/phpbbnewposts.php вот пример его работы

Проблема в том, что если в одну и ту-же тему написать два и более раз то он два и более раз будет выводить строку о новом сообщении. Как сделать, чтоб строки с одинаковым topic_id не повторялись?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
zidan
zidan
сообщение 16.12.2010, 11:14; Ответить: zidan
Сообщение #2


Если я правильно понял, то нужно вывести последние 5 (или сколько угодно) сообщений из разных тем. В запросах время написания сообщения не фигурирует совсем, что странно. Без него никак. А, вообще, GROUP BY нужно использовать, чтобы сообщения по темам сгруппировать.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
UnderStorm
UnderStorm
Topic Starter сообщение 16.12.2010, 14:10; Ответить: UnderStorm
Сообщение #3


Спасибо.

Еще такой вопрос, как подсчитать сколько в таблице строк с определенным параметром topic_id ?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZhukV
ZhukV
сообщение 17.12.2010, 10:57; Ответить: ZhukV
Сообщение #4


SELECT COUNT(*) FROM `table` WHERE `topic_id` = '....'

Так же можно использовать функцию, mysql_num_rows(), но лучше не используйте ее НИКОГДА. Все что касается БД, можно сделать SQL запросами.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
UnderStorm
UnderStorm
Topic Starter сообщение 18.12.2010, 13:36; Ответить: UnderStorm
Сообщение #5


(ZhukV @ 17.12.2010, 12:57) *
SELECT COUNT(*) FROM `table` WHERE `topic_id` = '....'

Так же можно использовать функцию, mysql_num_rows(), но лучше не используйте ее НИКОГДА. Все что касается БД, можно сделать SQL запросами.


Немного не понимаю как это сделать
Я сделал чтоб результаты группировались по topic_id но я не знаю как сделать чтоб скрипт считал сколько всего строк он сгруппировал в одну
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZhukV
ZhukV
сообщение 18.12.2010, 13:50; Ответить: ZhukV
Сообщение #6


Можна при помощи двух запорсов. Как обеденить не знаю =(
SELECT * FROM `table` GROUP BY `fields`

SELECT COUNT(*) FROM `table` GROUP BY `fields`

Первый запрос дастанет все сгрупированные записи, второй, из количество вместе с групировкой
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
UnderStorm
UnderStorm
Topic Starter сообщение 18.12.2010, 23:32; Ответить: UnderStorm
Сообщение #7


а какой переменной потом выводить это число?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZhukV
ZhukV
сообщение 19.12.2010, 0:46; Ответить: ZhukV
Сообщение #8


Это будет две разных переменных (массивы), нумерация которых будет одинакова.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Отображение нужного блока при клике.
0 bhtml 1664 10.7.2020, 15:18
автор: -bhtml-
Открытая тема (нет новых ответов) Пожалуйста помогите! Неправильное отображение новости и добавления комментария!
1 Dobrein 5057 14.3.2013, 13:17
автор: -Dobrein-
Открытая тема (нет новых ответов) Некорректное отображение в IE
1 zmey6285 3483 10.7.2012, 19:17
автор: -A1ex-
Открытая тема (нет новых ответов) некорректное отображение в ИЭ
5 my-myxa 3487 10.5.2012, 17:11
автор: -my-myxa-
Открытая тема (нет новых ответов) Неправильное отображение новостей моего сайта в Google
1 DIZmaan 3914 9.2.2012, 22:28
автор: -alexdrob-


 



RSS Текстовая версия Сейчас: 19.4.2024, 17:16
Дизайн