[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вычесление количество комментариев.
Ramzil_Nixon
Я создал отдельную таблицу на БД чтобы хранить там комментарии оставленные пользователями.

$result = mysql_query("SELECT COUNT(*) FROM $com");
$posts = mysql_result($result, 0);


И ставить следующим образом:


echo "Количество новостей: $posts";


То показывает все комментарии что находиться у меня в таблице комментариев.

Комментарии по топикам я вывожу при помощи id'а.

И собственно вопрос, как мне сделать так чтобы выводились отдельное количество комментариев в одном топике?



Спустя 8 минут, 7 секунд (25.10.2011 - 12:43) Xes написал(а):
У тебя в таблице комментариев должна быть колонка id топика к которому относится данный комент и тоогда в звапросе пишешь

.... WHERE `topic`='".$idtopic."'

Спустя 2 минуты, 17 секунд (25.10.2011 - 12:45) Ramzil_Nixon написал(а):
Xes
Щас попробуем

Спустя 2 часа, 59 минут, 13 секунд (25.10.2011 - 15:44) Ramzil_Nixon написал(а):
Неа, не получается:

<?php
error_reporting(E_ALL);
include '../admin/include/config.inc'; // Подключаем базу данных
include '../admin/include/table.inc'; // Подключаем переменные с таблицами
$query = ("SELECT id, title, content, DATE_FORMAT(date,'%d.%m.%Y') AS date FROM $news WHERE id =".(int)$_GET['id']." ORDER BY date DESC"); //Запрашиваем все новости
$res = mysql_query($query) or die(mysql_error()); // Выполним запрос. Если ошибка - вывксти ее.
while ($row = mysql_fetch_array($res))
{
echo "<div class='NewsDiv1'><a href='edit.php?id=".$row['id']."'>Ред.</a> / <a href='news_del.php?id=".$row['id']."'>Удалить</a> / <a href='news.php'>Назад</a></div>";
echo "<div class='BlockNews'><b>".$row['title']."</b><br>";
echo nl2br($row['content'])."</br>";
echo "<div class='NewsDiv2'>Коментарии: | Добавлено: <b>".$row['date']."</b></div></div>";
$arr_row['id'] = $row['id'];
}
$ids = $arr_row['id']; // Id записи присваиваем на $ids.
global $ids; // Обявляем переменный $ids глобальным
$comment_zap = !empty($_POST['comment'])?$_POST['comment']:null; // Проверяем ввел ли пользователь данные
if($comment_zap)
{
$query_comment = mysql_query("INSERT INTO $comm (comment, date, ids) VALUES ('$comment_zap',now(),'$ids')"); // Если пользователь ввел данные, то записываем их в базу
echo '<div class="message_ok">Добавлено!</div>';
}
else
{
// Если не ввел, ничего не делаем
}
$comment_ram = ("SELECT * FROM $comm WHERE ids = ". (int)$_GET['ids']." ORDER BY ids DESC"); // Делаем запрос
$comment_del = mysql_query("SELECT id FROM $comm WHERE id=".(int)$_GET['id'].""); // Делаем запрос для определения ида удаления
$com_res = mysql_query($comment_ram) or die(mysql_error()); // Отправляем запрос
$com_zislo = mysql_num_rows($com_res);
/* Выводим на экран */
while($ram_row = mysql_fetch_array($com_res))
{
echo "<div class='Comment_Block'>";
echo $ram_row['comment'].'<br>';
echo "<div class='com_str'><a href='del_com.php?id=".$ram_row['ids']."'>[ Удал. ]</a></div>";
echo "</div>";
}
?>

Спустя 15 минут, 23 секунды (25.10.2011 - 15:59) Игорь_Vasinsky написал(а):
У тя новости и комменты в разных таблицах?

Спустя 3 часа, 3 минуты, 29 секунд (25.10.2011 - 19:03) Xes написал(а):
Цитата (Ramzil_Nixon @ 25.10.2011 - 12:44)
global $ids; // Обявляем переменный $ids глобальным

Своеобразная манера письма. А зачем она глобальная, попробуй убрать эту строчку может и так будет работать? Почитай ченить чтобы не учится неправельно, потом сложнее будет переучиваться.

Логика должна быть такая гет запросом передается id новости. Ты выводишь новость.
Далее другая таблица в которой

idcoment | nameuser | coment | news
где news - это колонка в каторую пишится id новости к которой относится данный комент.


В форме при записи в таблицу с коментариями ти пишешь имя того кто оставил комент, комент, и id новости со страницы которой был отправлен этот комент.

Спустя 32 минуты, 59 секунд (25.10.2011 - 19:36) imbalance_hero написал(а):
Ramzil_Nixon
уже не раз вижу у тебя global, зачем?

Спустя 12 часов, 23 минуты, 57 секунд (26.10.2011 - 08:00) Ramzil_Nixon написал(а):
Игорь_Vasinsky
Да в разных

Спустя 1 минута, 18 секунд (26.10.2011 - 08:01) Ramzil_Nixon написал(а):
imbalance_hero
<?php
error_reporting(E_ALL);
include '../admin/include/config.inc'; // Подключаем базу данных
include '../admin/include/table.inc'; // Подключаем переменные с таблицами
$query = ("SELECT id, title, content, DATE_FORMAT(date,'%d.%m.%Y') AS date FROM $news WHERE id =".(int)$_GET['id']." ORDER BY date DESC"); //Запрашиваем все новости
$res = mysql_query($query) or die(mysql_error()); // Выполним запрос. Если ошибка - вывксти ее.
while ($row = mysql_fetch_array($res))
{
echo "<div class='NewsDiv1'><a href='edit.php?id=".$row['id']."'>Ред.</a> / <a href='news_del.php?id=".$row['id']."'>Удалить</a> / <a href='news.php'>Назад</a></div>";
echo "<div class='BlockNews'><b>".$row['title']."</b><br>";
echo nl2br($row['content'])."</br>";
echo "<div class='NewsDiv2'>Коментарии: | Добавлено: <b>".$row['date']."</b></div></div>";
$arr_row['id'] = $row['id'];
}
$ids = $arr_row['id']; // Id записи присваиваем на $ids.
global $ids; // Обявляем переменный $ids глобальным
$comment_zap = !empty($_POST['comment'])?$_POST['comment']:null; // Проверяем ввел ли пользователь данные
if($comment_zap)
{
$query_comment = mysql_query("INSERT INTO $comm (comment, date, ids) VALUES ('$comment_zap',now(),'$ids')"); // Если пользователь ввел данные, то записываем их в базу
echo '<div class="message_ok">Добавлено!</div>';
}
else
{
// Если не ввел, ничего не делаем
}
$comment_ram = ("SELECT * FROM $comm WHERE ids = ". (int)$_GET['ids']." ORDER BY ids DESC"); // Делаем запрос
$comment_del = mysql_query("SELECT id FROM $comm WHERE id=".(int)$_GET['id'].""); // Делаем запрос для определения ида удаления
$com_res = mysql_query($comment_ram) or die(mysql_error()); // Отправляем запрос
$com_zislo = mysql_num_rows($com_res);
/* Выводим на экран */
while($ram_row = mysql_fetch_array($com_res))
{
echo "<div class='Comment_Block'>";
echo $ram_row['comment'].'<br>';
echo "<div class='com_str'><a href='del_com.php?id=".$ram_row['ids']."'>[ Удал. ]</a></div>";
echo "</div>";
}
?>
<?php
echo '<form action="news_ooops.php?id='.$ids.'" method="post">'; ?>
Комментарий:<br><textarea type="text" name="comment" rows="5" cols="67"></textarea><br>
<input
type="submit" name="com" value="Комментировать">
</form>


Тепперь тоже будешь спрашивать зачем этот переменный глобальный?

Спустя 2 минуты, 24 секунды (26.10.2011 - 08:04) Ramzil_Nixon написал(а):
biggrin.gif Попробую снести и заного написать, с свежой головой biggrin.gif

Спустя 3 минуты, 17 секунд (26.10.2011 - 08:07) imbalance_hero написал(а):
Ramzil_Nixon
Конечно, пока не ответишь, зачем ты это делаешь smile.gif

Спустя 2 минуты, 24 секунды (26.10.2011 - 08:09) Ramzil_Nixon написал(а):
imbalance_hero
В смысле что я делаю?

Спустя 13 минут, 11 секунд (26.10.2011 - 08:22) Ramzil_Nixon написал(а):
У меня есть одна проблема

http://localhost/site_body/news/news_ooops.php?id=26

На топик у меня тоже заходит через id

как я могу определить ид чтобы удалить коммент?

Спустя 8 часов, 12 минут, 58 секунд (26.10.2011 - 16:35) imbalance_hero написал(а):
Ramzil_Nixon
Все переменные существуют внутри одного скрипта и доступны. Есть функции и классы, у них своя область видимости переменных, только для них и нужно объявлять переменные глобальными. В твоём примере нет ни функций, ни классов, поэтому объявлять её глобальной - бесполезно!

Спустя 3 часа, 9 минут, 20 секунд (26.10.2011 - 19:45) imbalance_hero написал(а):
Ramzil_Nixon
$_GET['id'] , то id, что передаётся через адресную строку.


_____________
Миллионы приходят, уходят, не в них счастье. Самым важным на свете всегда будут люди в этой комнате, вот здесь, сейчас...

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.