|
|
|
|
|
для: ladan
(20.01.2012 в 12:09)
| | разобрался! | |
|
|
|
|
|
|
|
для: ladan
(20.01.2012 в 02:16)
| | Хелп плииз
if(!$search) echo mysql_error(); /* тоже ошибок никаких не выдает */
|
| |
|
|
|
|
|
|
|
для: ladan
(19.01.2012 в 10:39)
| | В таблице есть ячейка tema(тип text) с FULLTEXT, и есть 1 запись, где в ячейке tema указано число "11111". Пробую найти совпадения, но всегда выводит, что ничего не найдено... С этим дело никогда не имел, не поможете разобраться? Немного погуглив, сделал запрос такого типа, как ниже..
<?
<form action="" method="post">
<input name="search" type="text"><input name="" type="submit" value="Искать">
</form>
<?
$search = mysql_query("SELECT * FROM forum WHERE MATCH(tema) AGAINST('".$_POST['search']."')");
if(mysql_num_rows($search) > 0)
{echo "Найдено";}
else {echo "Ничего не найдено";}
?>
|
| |
|
|
|
|
|
|
|
для: ladan
(18.01.2012 в 19:39)
| | все, разобрался | |
|
|
|
|
|
|
|
для: ladan
(18.01.2012 в 12:03)
| | а как реализовать фишку с редактированием. Когда ответов нет на сообщение, то можно его отредактировать...
Сделал так
<?
function tree_comment($id = 0, $intent = 0)
{
$id = intval($id);
$query = "SELECT * FROM comment
WHERE id_parent = $id";
$com = mysql_query($query);
if(!$com) exit("Ошибка извлечения комментариев");
if(mysql_num_rows($com))
{
while($comment = mysql_fetch_array($com))
{
$edit_post = mysql_query("SELECT * FROM comment");
while($edit_post_row = mysql_fetch_array($edit_post)) /* делаем проверку на ссылки редактирования */
{
if($comment['id'] == $edit_post_row['id_parent']) {$edit_post = "<span style='display:none;'>%s%s</span>"; }/* если текущий id будет найден в id_parent других постов, то редактирование запрещаем :) */
else {$edit_post = "<a href='edit_post.php?id_theme=%s&id=%s'>Редактировать</a>";}
}
// Вывод комментария
printf("
<table>
<tr>
<td style='padding-left: {$intent}px'>%s%s</td>
</tr>
<tr>
<td style='padding-left: {$intent}px'>%s</td>
</tr>
<tr>
<td>$edit_post </td>
</tr>
</table>
", $comment[author],$comment['date'],$comment ['message'],$_GET['id_theme'],$comment ['id'] );
// Рекурсивный вызов
tree_comment($comment['Id'], $intent + 5);
}
}
}
?>
|
Если отвечать на первое сообщение, то ссылка редактирования у первого поста пропадает(что нормально), а если отвечать уже на 2 сообщение, то ссылка у второго поста остается
Подскажите пожалуйста, на что обратить внимание следует... | |
|
|
|
|
|
|
|
для: ladan
(18.01.2012 в 10:38)
| | все, вроде разобрался, недоглядел скрипт :)
Все супер, работает как надо :) | |
|
|
|
|
|
|
|
для: cheops
(18.01.2012 в 02:12)
| | таблица
CREATE TABLE `comment` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`comment` tinytext NOT NULL,
`parent` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8
|
в ней 1 запись с parent=0
Получается, что я как бы сделал пост, на который еще никто ответов не давал, а функция все равно зацикливается и выводит бесконечность этого первого поста.. | |
|
|
|
|
|
|
|
для: ladan
(18.01.2012 в 01:56)
| | Если зацикливания нет, то не должно быть бесконечности, рано или поздно должен появиться пост, у которого не будет ответов и рекурсия должна развернуться в обратную сторону. | |
|
|
|
|
|
|
|
для: ladan
(17.01.2012 в 20:54)
| | захотелось тоже реализовать древовидные комменты как здесь, читал тему http://softtime.ru/forum/read.php?id_forum=3&id_theme=83287,
был приведен скрипт
<?php
// Устанавливаем соединение с базой данных
require_once("config.php");
// Использование
echo tree_comment(0);
// Реализация
function tree_comment($id = 0, $intent = 0)
{
$id = intval($id);
$query = "SELECT * FROM comment
WHERE parent = $id
ORDER BY year, month, day, `time`";
$com = mysql_query($query);
if(!$com) exit("Ошибка извлечения комментариев");
if(mysql_num_rows($com))
{
while($comment = mysql_fetch_array($com))
{
// Вывод комментария
echo "<p style='margin-left: {$intent}px'>{$comment['comment']}</p>";
// Рекурсивный вызов
tree_comment($catalog['Id'], $intent + 5);
}
}
}
?>
|
для
таблицы
CREATE TABLE `comment` (
`Id` int(11) NOT NULL auto_increment,
`post_id` int(11) NOT NULL default '0',
`user_name` varchar(255) NOT NULL default '',
`comment` tinytext NOT NULL,
`mail` varchar(255) NOT NULL default '',
`day` int(2) NOT NULL default '0',
`month` int(2) NOT NULL default '0',
`year` int(4) NOT NULL default '0',
`time` varchar(255) NOT NULL default '',
`vote` int(11) NOT NULL default '0',
`parent` int(11) NOT NULL default '0',
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
|
Можно пожалуйста поподробней. Получается, что сначала берем первый комментарий с parent=0, далее идет цикл, выводим его как обычно и идет вызов самой функции(с id основного комментария и +5px). И потом выбираем уже комментарий с parent от основного коммента и опять идет цикл и так далее. Вроде все понятно, но я воспроизвел эту таблицу, приведенная в той теме и этот скрипт и один и получается так, что основной комментарий(где parent=0) выводится на экран до бесконечности... Не подскажите где тут проблема ? :) | |
|
|
|
|
|
|
|
для: cheops
(17.01.2012 в 20:37)
| | спасибо! | |
|
|
|
|