Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывыод комментов
 
 автор: liberty   (14.02.2013 в 09:09)   письмо автору
 
 

Добрый день!
В блоке вывожу 3 последние коммента из одной таблицы.
<!--Вывод comments-->
<?php 
$result 
mysql_query("SELECT * FROM comment_ege ORDER BY date DESC LIMIT 3"$db); 
while (
$comment mysql_fetch_array($result))  

$author $comment["author"]; 
$post $comment["post"]; 
$text $comment["text"]; 
if (
strlen($text) > 75 ) { 
    
$text substr($text075).'...'

printf("<a href='view_post_ege.php?id=%s'><div class='comment-content2'> 
       <h6>%s</h6> 
       <p>%s</p></a> 
       </div>  
       "
,$post,$author,$text); 
}
?>

Тут же - только из другой таблицы с другими ссылками
<?php
$result 
mysql_query("SELECT * FROM comment_ccuz ORDER BY date DESC LIMIT 3"$db);
while (
$comment mysql_fetch_array($result))  
{
$author $comment["author"];
$post $comment["post"];
$text $comment["text"];

if (
strlen($text) > 75 ) {
    
$text substr($text075).'...';
}
printf("<a href='post_ccuz.php?id_ccuz=%s'><div class='comment-content2'>
       <h6>%s</h6>
       <p>%s</p></a>
       </div> 
       "
,$post,$author,$text);
}
?>    

Как мне соединить комменты и выводить их вместе с сортировкой по дате?

  Ответить  
 
 автор: Sfinks   (14.02.2013 в 09:20)   письмо автору
 
   для: liberty   (14.02.2013 в 09:09)
 

Если в таблицах comment_ege и comment_ccuz количество и порядок полей совпадают, то просто объедините запрос с помощью UNION ALL.
Если не совпадают, то еще нужно перечислить поля, примерно так:
SELECT *
FROM( SELECT id, date, author, text FROM comment_ege
        UNION ALL
      SELECT id, date, author, text FROM comment_ccuz
)t
ORDER BY date DESC
LIMIT 5

  Ответить  
 
 автор: liberty   (14.02.2013 в 09:23)   письмо автору
 
   для: Sfinks   (14.02.2013 в 09:20)
 

совпадают.
А как быть ссылками на страницы. Они разные.
view_post_ege.php
post_ccuz.php

  Ответить  
 
 автор: Jovidon   (14.02.2013 в 09:35)   письмо автору
 
   для: liberty   (14.02.2013 в 09:23)
 

Почему вы сохраняете коментарии в разных таблицах?

  Ответить  
 
 автор: Valick   (14.02.2013 в 10:20)   письмо автору
 
   для: Jovidon   (14.02.2013 в 09:35)
 

это пламенный привет от Ж Попова

  Ответить  
 
 автор: Sfinks   (14.02.2013 в 10:59)   письмо автору
 
   для: liberty   (14.02.2013 в 09:23)
 

Можно добавить их как доп.поле в выборку:
SELECT * 
FROM( SELECT id, date, author, text, 'view_post_ege.php' as `url` FROM comment_ege 
        UNION ALL 
      SELECT id, date, author, text, 'post_ccuz.php' as `url` FROM comment_ccuz 
)t 
ORDER BY date DESC 
LIMIT 5

  Ответить  
 
 автор: liberty   (14.02.2013 в 15:27)   письмо автору
 
   для: Sfinks   (14.02.2013 в 10:59)
 

> Почему вы сохраняете коментарии в разных таблицах?

хмм... А ведь правда.
А как теперь исправить ситуацию?
Ну и знать надо как-то что этот коммент относится к вузу, а тот к техникуму.
Но как?

  Ответить  
 
 автор: Jovidon   (14.02.2013 в 15:54)   письмо автору
 
   для: liberty   (14.02.2013 в 15:27)
 

В таблицу коментарии добавте еще один сталбец url и сохраняте туда url адрес той или иной статьи.

  Ответить  
 
 автор: liberty   (15.02.2013 в 02:58)   письмо автору
 
   для: Jovidon   (14.02.2013 в 15:54)
 

в таблице создал поле url (varchar,255).
Записываем туда ссылку.
если ссылка в таком виде
http://mysite.ru/post_pu.php?id_pu=
комменты выглядит так
<form action="#" method="POST" enctype="multipart/form-data" name="addcom" id="addcom" onSubmit="return false" class="sendform">
<input class="comment_name" type="text" name="author" id="author"> Ваше имя
<div class="corner20"><textarea name="text"></textarea></div>
<input name="id" type="hidden" value="<?php echo $id_pu?>">
<input type='hidden' name='advertisment' value='<?php echo $myrow3['title']; ?>'>
<input class="button-small" name="button" type="button" value='Отправить' onclick="doLoad(document.getElementById('addcom'))">
</form>

в этой форме прописываем
<input name="url" type="hidden" value="<?php echo post_pu.php?>">

верно?
далее
в файле comment.php
пишем
$text = trim($_POST['text']);
$author = trim($_POST['author']);
$id = trim($_POST['id']);
$url = trim($_POST['url']);

Далее записываем все в базу данных
//Если нет ошибок добавляем в базу  
if($error=="no"){
    $date = date("Y-m-d H:i"); 
    $result2 = mysql_query("INSERT INTO comment_pu (post,author,text,date,url) 
VALUES ('" . mysql_real_escape_string($id) . "','" . mysql_real_escape_string($author) . "','" . 
mysql_real_escape_string($text) . "','$date','$url')");
    //****

в поле url записвается вот так
post_puphp

  Ответить  
 
 автор: Jovidon   (15.02.2013 в 11:43)   письмо автору
 
   для: liberty   (15.02.2013 в 02:58)
 

Нет.
зачем столько файлов создать.


<?php
    
if(@$_GET["action"] == "compose")
    {
        
// Для ощибки;
        
$error = array();
        
        
// Проверяем;
        
if(empty($_POST["author"]))         $error "Поля имя пуст:";
        if(empty(
$_POST["comment"]))     $error "Поля коммент пуст:";
        
        
// Если нет ошибки то продалжаем;
        
if(empty($error))
        {
            
$query "INSERT INTO comments
                      VALUES(0,'" 
                            
mysql_escape_string($_POST["author"]) . "','" 
                            
mysql_escape_string($_POST["comment"]) . "','" 
                            
date("Y-m-d H:i") . "','" 
                            
mysql_escape_string($_SERVER["HTTP_REFERER"]) . "')";
            
$result mysql_query($query) or die("Ощибка: " mysql_error());
            if(
$result) echo 'Ваш коммент успешно добавлен!';
        }
        else
        {
            foreach(
$error as $err)
            {
                echo 
'<span>' $err '</span>';
            }
        }
    }
    else
    {
?>
<form action="&action=compose" method="POST">
    Имя: <input type="text" name="author" maxlenght="20" />
    Коммент: <textarea cols="15" name="comment" rows="10" maxlenght="500"></textarea>
    <input type="submit" value="Комментировать" />
</form>
<?php
    
}
?>

  Ответить  
 
 автор: liberty   (23.02.2013 в 10:44)   письмо автору
 
   для: Jovidon   (15.02.2013 в 11:43)
 

пока не совсем понятно как сделать первый шаг.
как вытащить ссылку url ?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования