Я придумал только один вариант.
Код вывода комментариев:
$result2 = mysql_query ("SELECT * FROM `comments` WHERE `post`='". $id ."' ORDER BY `id`", $db);
if (mysql_num_rows ($result2) == '0')
{
echo '<p class="post2">Ваш комментарий будет первым!</p>';
}
if (mysql_num_rows ($result2) > 0)
{
echo '<p class="post">Комментарии:</p>';
while ($myrow2 = mysql_fetch_assoc($result2))
{
include './blocks/smilesbb.php';
echo
('<div class="post_div"><p class="post_add"><strong>Комментарий добавил(а):</strong>
'. htmlspecialchars($myrow2["author"]) .'<br><strong>E-mail:</strong> '. htmlspecialchars($myrow2["email"]) .'<br><strong>Дата:</strong> '. htmlspecialchars($myrow2["date"]) .'</p>
<p class="post_text">'. $posttext .'</p></div>');
}
}
Файл smilesbb.php который преобразует символ смайлика в картинку:
$posttext = htmlspecialchars($myrow2["text"]);
$posttext = strtr($posttext, array(
':)'=>'<img src="../images/smiles/smile.gif">',
':D'=>'<img src="../images/smiles/biggrin.gif">',
';)'=>'<img src="../images/smiles/wink.gif">',
/*и т.д.*/
));
$posttext = nl2br($posttext);
Хотел у Вас спросить на сколько этот вариант оптимален в плане ресурсоёмкости?
Спустя 9 минут, 54 секунды (18.12.2011 - 19:12) Winston написал(а):
Вот так перепиши и будет нормально.
Свернутый текст
$result2 = mysql_query ("SELECT * FROM `comments` WHERE `post`='". (int)$id ."' ORDER BY `id`");
if (mysql_num_rows ($result2) == 0)
{
echo '<p class="post2">Ваш комментарий будет первым!</p>';
return;
}
else
{
include './blocks/smilesbb.php';
echo '<p class="post">Комментарии:</p>';
while($myrow2 = mysql_fetch_assoc($result2))
{
echo '<div class="post_div"><p class="post_add"><strong>Комментарий добавил(а):</strong>'
. htmlspecialchars($myrow2["author"]) . '<br><strong>E-mail:</strong> '
. htmlspecialchars($myrow2["email"]) . '<br><strong>Дата:</strong> '
. htmlspecialchars($myrow2["date"]) . '</p>'
. '<p class="post_text">' . toImg($posttext) . '</p></div>';
}
}
///////////
// smilesbb.php
///////////
function toImg($text)
{
$posttext = htmlspecialchars($text);
$posttext = strtr($posttext, array(
':)'=>'<img src="../images/smiles/smile.gif">',
':D'=>'<img src="../images/smiles/biggrin.gif">',
';)'=>'<img src="../images/smiles/wink.gif">',
/*и т.д.*/
));
return nl2br($posttext);
}
Спустя 6 часов, 4 минуты, 48 секунд (19.12.2011 - 01:17) xJlaIIax написал(а):
Winston, сделал всё как ты писал, но там где должен выводиться текст сообщения выводится
Notice: Undefined variable: posttext in C:\WebServers\www\films_full.php on line 189
На 189 линии находится код:
Хотел спросить что за переменна $text в файле smilesbb.php:
Notice: Undefined variable: posttext in C:\WebServers\www\films_full.php on line 189
На 189 линии находится код:
. '<p class="post_text">' . toImg($posttext) . '</p></div>';
Хотел спросить что за переменна $text в файле smilesbb.php:
function toImg($text)
{
$posttext = htmlspecialchars($text);
Спустя 27 минут, 28 секунд (19.12.2011 - 01:45) Игорь_Vasinsky написал(а):
это символическая переменная, при вызове функции вместо неё можешь ставить свою
Спустя 21 час, 46 минут, 17 секунд (19.12.2011 - 23:31) xJlaIIax написал(а):
Нашёл где собака зарыта:
Заменил toImg($posttext) на $myrow2["text"] = toImg($myrow2["text"]) и заменил $posttext на $text(не увидел смысл в разных переменных.)
Winston, спасибо что направил в нужное русло.
$result2 = mysql_query ("SELECT * FROM `comments` WHERE `post`='". (int)$id ."' ORDER BY `id`");
if (mysql_num_rows ($result2) == 0)
{
echo '<p class="post2">Ваш комментарий будет первым!</p>';
return;
}
else
{
include './blocks/smilesbb.php';
echo '<p class="post">Комментарии:</p>';
while($myrow2 = mysql_fetch_assoc($result2))
{
echo '<div class="post_div"><p class="post_add"><strong>Комментарий добавил(а):</strong>'
. htmlspecialchars($myrow2["author"]) . '<br><strong>E-mail:</strong> '
. htmlspecialchars($myrow2["email"]) . '<br><strong>Дата:</strong> '
. htmlspecialchars($myrow2["date"]) . '</p>
<p class="post_text">' . $myrow2["text"] = toImg($myrow2["text"]) . '</p></div>';
}
}
///////////
// smilesbb.php
///////////
function toImg($text)
{
$text = htmlspecialchars($text);
$text = strtr($text, array(
':)'=>'<img src="../images/smiles/smile.gif">',
':D'=>'<img src="../images/smiles/biggrin.gif">',
';)'=>'<img src="../images/smiles/wink.gif">',
/*и т.д.*/
));
return nl2br($text);
}
Заменил toImg($posttext) на $myrow2["text"] = toImg($myrow2["text"]) и заменил $posttext на $text(не увидел смысл в разных переменных.)
Winston, спасибо что направил в нужное русло.