Создать ответ 
Поиск на сайте по комментариям из БД
Автор Сообщение
artindustrial Не на форуме
Младший сержант
*

Сообщений: 21
У нас с: Nov 2012
Сообщение: #31
RE: Поиск на сайте по комментариям из БД
(01.12.2012 22:41:55)Admin писал(а):  Ну тогда у Вас SQL запросы должны выглядеть так:

$result = mysql_query("SELECT * FROM comment WHERE theme=posledvoprosi.php", $link);

и второй

$result = mysql_query("SELECT * FROM comment WHERE theme=posledvoprosi.php ORDER BY id LIMIT ".($comment_list*10-10).",10", $link);


Опять ошибки, вот что получилось :

Код:
<?php
session_start();

$link = mysql_connect("localhost", "sprosipu_pu", "112211") or die("Could not connect: " . mysql_error());
mysql_select_db("sprosipu_sprosipu", $link);

$_SESSION[full_url]=mysql_real_escape_string(basename($_SERVER['REQUEST_URI']));
$_SESSION[mess_url]=strtok($_SESSION[full_url], '?');

if (isset($_POST[contr_cod])) {
$_SESSION[comment_mess_login]=$_POST[mess_login];
$_SESSION[comment_user_text]=$_POST[user_text];
if (get_magic_quotes_gpc()=="0") {
  $_SESSION[comment_mess_login]=mysql_real_escape_string($_SESSION[comment_mess_login]);
  $_SESSION[comment_user_text]=mysql_real_escape_string($_SESSION[comment_user_text]);
}
$_SESSION[comment_mess_login]=htmlspecialchars($_POST[mess_login]);
$_SESSION[comment_user_text]=htmlspecialchars($_POST[user_text]);

if (md5($_POST[contr_cod])==$_POST[prov_summa]) {
  $result = mysql_query("insert into comment (date,theme,login,message)
  values ('".date("Y-m-d H:i:s")."','".$_SESSION[mess_url]."','".$_SESSION[comment_mess_login]."','".$_SESSION[comment_user_text]."')");
  $_SESSION[send]='Комментарий принят и ожидает модерации.';
  $_SESSION[comment_mess_login]='';
  $_SESSION[comment_user_text]='';
  header("Location: $_SESSION[mess_url]#last");
  exit;
}
else {
  $_SESSION[send] = "Неверный проверочный код!";
  header("Location: $_SESSION[mess_url]#last");
  exit;
}
}
?>
<?php
if (!empty($_SERVER['HTTP_CLIENT_IP']))
    $ip=$_SERVER['HTTP_CLIENT_IP'];
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
    $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
else $ip=$_SERVER['REMOTE_ADDR'];
$ip_position=strpos($ip,',');
if ($ip_position>0) $ip_short=substr($ip, 0, $ip_position);
else $ip_short=$ip;
?>


<?php
function col_pages($count, $this, $radius) {
$j=0; $out=""; $td='<td width="35" bgcolor="lightgreen">';
if (($this-$radius)<1) $i=1;
     else $i=$this-$radius;
if ($i==1) $i++;

if (($count-($radius*2+1))<$i) $i=$count-($radius*2+1);
if ($i<2) $i=2;

if ($this!=1)
  $out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list=1">1</a></td>';
     else $out.=$td.'<b>[ 1 ]</b></td>';

if ($i>2) $out.=$td.'...</td>';

while ((($i<=($this+$radius)) or ($j<($radius*2+1))) and ($i<$count)) {
if ($i!==$this)
  $out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list='.$i.'">'.$i.'</a></td>';
     else $out.=$td.'<b>[ '.$i.' ]</b></td>';
$i++; $j++;
}
if ($i<$count) $out.=$td.'...</td>';
if ($count>1) {
     if ($count!=$this)
      $out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list='.$count.'">
      '.$count.'</a></td>';
     else $out.=$td.'<b>[ '.$count.' ]</b></td>';
}
return $out;
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
        <!-- ##### BEGIN CONTENT ##### -->

<?php
if (is_numeric($_POST[comment_id])and($_POST[ocenka]=='0' or $_POST[ocenka]=='1')){
$result = mysql_query("SELECT count(id),ocenka FROM ocenka_comment
WHERE comment_id='".$_POST[comment_id]."' and ip='".$ip_short."'", $link);
$number = @mysql_fetch_array($result);
if ($number[0]==0) {
$result = mysql_query("insert into ocenka_comment (date,comment_id,ip,ocenka)
values ('".date("Y-m-d H:i:s")."','".$_POST[comment_id]."','".$ip_short."','".$_POST[ocenka]."')"); }
elseif ($number[ocenka]!=$_POST[ocenka]) {$result = mysql_query("UPDATE ocenka_comment
SET date='".date("Y-m-d H:i:s")."',ocenka='".$_POST[ocenka]."'
WHERE comment_id='".$_POST[comment_id]."' and ip='".$ip_short."'"); }
}
$result = mysql_query("SELECT * FROM comment
WHERE theme='".$_SESSION[mess_url]."'ORDER BY id desc", $link);
$number = mysql_num_rows($result);
if ($number>0) {echo '<hr><div align="center" style="padding:3px; border-radius:5px;">
<u><b>Последние вопросы посетителей:</b></u><br>';
for ($n=1; $n<=$number; $n++) {$comments=@mysql_fetch_array($result);

$result_minus = mysql_query("SELECT sum(ocenka=1), sum(ocenka=0) FROM ocenka_comment
WHERE comment_id='".$comments[id]."' LIMIT 1", $link);
$ocenka_com=@mysql_fetch_array($result_minus);
echo '<br><table border="0" width="90%" style="border: 0px solid #4874a3;"><tr>';
echo '<td align="left">';
echo '<div id="m'.$comments[id].'"></div><b>'.$comments[login].'</b></td>';
echo '<td width="100">';
echo '<span style="font-size:9px;">('.$comments[date].')</span></td>';
echo '<td width="5" align="right">';
echo '<form method="POST" action="'.$_SESSION[mess_url].'#m'.$comments[id].'">';
echo '<input type="hidden" name="comment_id" value="'.$comments[id].'">';
echo '<input type="hidden" name="ocenka" value="1">';
echo '<input type="image" src="images/kylaka.png" title="Голосовать">';
echo '</form>';
echo '<b>'.($ocenka_com[0]-$ocenka_com[1]).'</b></td>';
echo '</form></td></tr></table>';
echo '<table border="0" width="100%" style="border: 1px solid #eeeeee;">';
echo '<tr><td colspan="5" align="justify">';
echo wordwrap(nl2br($comments[message]), 70, "\n", 1);
echo '</td></tr></table>';
}
echo '</div><br>';
}
else echo '<hr>';
?>


<?php
$result = mysql_query("SELECT * FROM comment WHERE theme=a.php", $link);
$count_list=floor((mysql_num_rows($result)-1)/5)+1;

if (is_numeric($_GET[comment_list]) and $_GET[comment_list]>0) {
if ($_GET[comment_list]>$count_list) $comment_list=$count_list;
    else $comment_list=$_GET[comment_list];
}
else $comment_list=1;
if ($comment_list==0) $comment_list=1;

$result = mysql_query("SELECT * FROM comment WHERE theme=a.php ORDER BY id LIMIT ".($comment_list*5-5).",5", $link);
$number = mysql_num_rows($result);
for ($n=1; $n<=$number; $n++) {
    $comments=mysql_fetch_array($result);
    // Оформление и вывод комментариев
    echo '<div>'.$comments[message].'</div>';
}
echo '<table style="border: 1px solid #4874a3;" cellspacing="2" cellpadding="0">';
echo '<tr align="center">';
  echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list>1) echo '<a href="'.$_SESSION[mess_url].'">В начало</a>';
    else echo 'В начало';
  echo '</td>';
  echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list>1) echo '<a href="'.$_SESSION[mess_url].'?comment_list='.($comment_list-1).'">Назад</a>';
    else echo 'Назад';
  echo '</td>';

echo col_pages((int)$count_list, (int)$comment_list, 3);

  echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list<$count_list) echo '<a href="'.$_SESSION[mess_url].'?comment_list='.($comment_list+1).'">Вперед</a>';
    else echo 'Вперед';
  echo '</td>';
  echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list<$count_list) echo '<a href="'.$_SESSION[mess_url].'?comment_list='.$count_list.'">В конец</a>';
    else echo 'В конец';
  echo '</td>';
echo '</tr>';
echo '</table>';
?>
02.12.2012 00:21:39
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #32
RE: Поиск на сайте по комментариям из БД
Возьмите имя файла a.php в одинарные кавычки!

theme='a.php'

А еще лучше, раз Вы уже используете переменную $_SESSION[mess_url], делать так: theme='".$_SESSION[mess_url]."'
02.12.2012 12:29:47
Найти все сообщения Цитировать это сообщение
artindustrial Не на форуме
Младший сержант
*

Сообщений: 21
У нас с: Nov 2012
Сообщение: #33
RE: Поиск на сайте по комментариям из БД
(02.12.2012 12:29:47)Admin писал(а):  Возьмите имя файла a.php в одинарные кавычки!

theme='a.php'

А еще лучше, раз Вы уже используете переменную $_SESSION[mess_url], делать так: theme='".$_SESSION[mess_url]."'


Как не крути, все равно:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/sprosipu/public_html/a.php on line 231

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/sprosipu/public_html/a.php on line 242
03.12.2012 10:30:25
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #34
RE: Поиск на сайте по комментариям из БД
Очень странно, т.к. у Вас в начале кода уже есть схожие строчки, которые обрабатываются корректно.
$result = mysql_query("SELECT * FROM comment WHERE theme='".$_SESSION[mess_url]."' ORDER BY id desc", $link);
$number = mysql_num_rows($result);


Да и у меня Ваш код работает. Scratch
03.12.2012 20:45:48
Найти все сообщения Цитировать это сообщение
artindustrial Не на форуме
Младший сержант
*

Сообщений: 21
У нас с: Nov 2012
Сообщение: #35
RE: Поиск на сайте по комментариям из БД
(03.12.2012 20:45:48)Admin писал(а):  Очень странно, т.к. у Вас в начале кода уже есть схожие строчки, которые обрабатываются корректно.
$result = mysql_query("SELECT * FROM comment WHERE theme='".$_SESSION[mess_url]."' ORDER BY id desc", $link);
$number = mysql_num_rows($result);


Да и у меня Ваш код работает. Scratch



Код работает, все переключается, но комментарии на месте стоят. Ничего не происходит. Вот два кода - 1-ый постраничная выдача, 2-й вывод комментов из таблицы БД, может их как то объединить надо?


Код:
<?php
$result = mysql_query("SELECT * FROM comment WHERE theme='".$_SESSION[mess_url]."'", $link);
$count_list=floor((mysql_num_rows($result)-1)/5)+1;
if (is_numeric($_GET[comment_list]) and $_GET[comment_list]>0) {
if ($_GET[comment_list]>$count_list) $comment_list=$count_list;
else $comment_list=$_GET[comment_list];
}
else $comment_list=1;
if ($comment_list==0) $comment_list=1;
$result = mysql_query("SELECT * FROM comment WHERE theme='".$_SESSION[mess_url]."' ORDER BY id LIMIT ".($comment_list*5-5).",5", $link);
$number = mysql_num_rows($result);
for ($n=1; $n<=$number; $n++) {
$comments=mysql_fetch_array($result);
}

echo '<table style="border: 1px solid #4874a3;" cellspacing="2" cellpadding="0">';
echo '<tr align="center">';
  echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list>1) echo '<a href="'.$_SESSION[mess_url].'">В начало</a>';
    else echo 'В начало';
  echo '</td>';
  echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list>1) echo '<a href="'.$_SESSION[mess_url].'?comment_list='.($comment_list-1).'">Назад</a>';
    else echo 'Назад';
  echo '</td>';

echo col_pages((int)$count_list, (int)$comment_list, 3);

  echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list<$count_list) echo '<a href="'.$_SESSION[mess_url].'?comment_list='.($comment_list+1).'">Вперед</a>';
    else echo 'Вперед';
  echo '</td>';
  echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list<$count_list) echo '<a href="'.$_SESSION[mess_url].'?comment_list='.$count_list.'">В конец</a>';
    else echo 'В конец';
  echo '</td>';
echo '</tr>';
echo '</table>';

?>





<?php
if (is_numeric($_POST[comment_id])and($_POST[ocenka]=='0' or $_POST[ocenka]=='1')){
$result = mysql_query("SELECT count(id),ocenka FROM ocenka_comment
WHERE comment_id='".$_POST[comment_id]."' and ip='".$ip_short."'", $link);
$number = @mysql_fetch_array($result);
if ($number[0]==0) {
$result = mysql_query("insert into ocenka_comment (date,comment_id,ip,ocenka)
values ('".date("Y-m-d H:i:s")."','".$_POST[comment_id]."','".$ip_short."','".$_POST[ocenka]."')"); }
elseif ($number[ocenka]!=$_POST[ocenka]) {$result = mysql_query("UPDATE ocenka_comment
SET date='".date("Y-m-d H:i:s")."',ocenka='".$_POST[ocenka]."'
WHERE comment_id='".$_POST[comment_id]."' and ip='".$ip_short."'"); }
}
$result = mysql_query("SELECT * FROM comment
WHERE theme='".$_SESSION[mess_url]."'ORDER BY id desc", $link);
$number = mysql_num_rows($result);

if ($number>0) {echo '<hr><div align="center" style="padding:3px; border-radius:5px;">
<u><b>Последние вопросы посетителей:</b></u><br>';
for ($n=1; $n<=$number; $n++) {$comments=@mysql_fetch_array($result);


$result_minus = mysql_query("SELECT sum(ocenka=1), sum(ocenka=0) FROM ocenka_comment
WHERE comment_id='".$comments[id]."' LIMIT 1", $link);
$ocenka_com=@mysql_fetch_array($result_minus);
echo '<br><table border="0" width="90%" style="border: 0px solid #4874a3;"><tr>';
echo '<td align="left">';
echo '<div id="m'.$comments[id].'"></div><b>'.$comments[login].'</b></td>';
echo '<td width="100">';
echo '<span style="font-size:9px;">('.$comments[date].')</span></td>';
echo '<td width="5" align="right">';
echo '<form method="POST" action="'.$_SESSION[mess_url].'#m'.$comments[id].'">';
echo '<input type="hidden" name="comment_id" value="'.$comments[id].'">';
echo '<input type="hidden" name="ocenka" value="1">';
echo '<input type="image" src="images/kylaka.png" title="Голосовать">';
echo '</form>';
echo '<b>'.($ocenka_com[0]-$ocenka_com[1]).'</b></td>';
echo '</form></td></tr></table>';
echo '<table border="0" width="100%" style="border: 1px solid #eeeeee;">';
echo '<tr><td colspan="5" align="justify">';
echo wordwrap(nl2br($comments[message]), 70, "\n", 1);
echo '</td></tr></table>';
}
echo '</div><br>';
}
else echo '<hr>';
?>
03.12.2012 22:00:47
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #36
RE: Поиск на сайте по комментариям из БД
Готово, забирайте.

Код:
<?php
session_start();

$link = mysql_connect("***", "***", "***") or die("Could not connect: " . mysql_error());
mysql_select_db("***", $link);

$_SESSION[full_url]=mysql_real_escape_string(basename($_SERVER['REQUEST_URI']));
$_SESSION[mess_url]=strtok($_SESSION[full_url], '?');

if (isset($_POST[contr_cod])) {
$_SESSION[comment_mess_login]=$_POST[mess_login];
$_SESSION[comment_user_text]=$_POST[user_text];
if (get_magic_quotes_gpc()=="0") {
$_SESSION[comment_mess_login]=mysql_real_escape_string($_SESSION[comment_mess_login]);
$_SESSION[comment_user_text]=mysql_real_escape_string($_SESSION[comment_user_text]);
}
$_SESSION[comment_mess_login]=htmlspecialchars($_POST[mess_login]);
$_SESSION[comment_user_text]=htmlspecialchars($_POST[user_text]);

if (md5($_POST[contr_cod])==$_POST[prov_summa]) {
$result = mysql_query("insert into comment (date,theme,login,message)
values ('".date("Y-m-d H:i:s")."','".$_SESSION[mess_url]."','".$_SESSION[comment_mess_login]."','".$_SESSION[comment_user_text]."')");
$_SESSION[send]='Комментарий принят и ожидает модерации.';
$_SESSION[comment_mess_login]='';
$_SESSION[comment_user_text]='';
header("Location: $_SESSION[mess_url]#last");
exit;
}
else {
$_SESSION[send] = "Неверный проверочный код!";
header("Location: $_SESSION[mess_url]#last");
exit;
}
}

function col_pages($count, $this, $radius) {
$j=0; $out=""; $td='<td width="35" bgcolor="lightgreen">';
if (($this-$radius)<1) $i=1;
else $i=$this-$radius;
if ($i==1) $i++;

if (($count-($radius*2+1))<$i) $i=$count-($radius*2+1);
if ($i<2) $i=2;

if ($this!=1)
$out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list=1">1</a></td>';
else $out.=$td.'<b>[ 1 ]</b></td>';

if ($i>2) $out.=$td.'...</td>';

while ((($i<=($this+$radius)) or ($j<($radius*2+1))) and ($i<$count)) {
if ($i!==$this)
$out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list='.$i.'">'.$i.'</a></td>';
else $out.=$td.'<b>[ '.$i.' ]</b></td>';
$i++; $j++;
}
if ($i<$count) $out.=$td.'...</td>';
if ($count>1) {
if ($count!=$this)
$out.=$td.'<a href="'.$_SESSION[mess_url].'?comment_list='.$count.'">
'.$count.'</a></td>';
else $out.=$td.'<b>[ '.$count.' ]</b></td>';
}
return $out;
}

$result = mysql_query("SELECT * FROM comment WHERE theme='".$_SESSION[mess_url]."'", $link);
$count_list=floor((mysql_num_rows($result)-1)/5)+1;
if (is_numeric($_GET[comment_list]) and $_GET[comment_list]>0) {
if ($_GET[comment_list]>$count_list) $comment_list=$count_list;
else $comment_list=$_GET[comment_list];
}
else $comment_list=1;
if ($comment_list==0) $comment_list=1;
$result = mysql_query("SELECT * FROM comment WHERE theme='".$_SESSION[mess_url]."' ORDER BY id LIMIT ".($comment_list*5-5).",5", $link);
$number = mysql_num_rows($result);

if ($number>0) {echo '<hr><div align="center" style="padding:3px; border-radius:5px;">
<u><b>Последние вопросы посетителей:</b></u><br>';
for ($n=1; $n<=$number; $n++) {
$comments=mysql_fetch_array($result);

$result_minus = mysql_query("SELECT sum(ocenka=1), sum(ocenka=0) FROM ocenka_comment WHERE comment_id='".$comments[id]."' LIMIT 1", $link);
$ocenka_com=@mysql_fetch_array($result_minus);
echo '<br><table border="0" width="90%" style="border: 0px solid #4874a3;"><tr>';
echo '<td align="left">';
echo '<div id="m'.$comments[id].'"></div><b>'.$comments[login].'</b></td>';
echo '<td width="100">';
echo '<span style="font-size:9px;">('.$comments[date].')</span></td>';
echo '<td width="5" align="right">';
echo '<form method="POST" action="'.$_SESSION[mess_url].'#m'.$comments[id].'">';
echo '<input type="hidden" name="comment_id" value="'.$comments[id].'">';
echo '<input type="hidden" name="ocenka" value="1">';
echo '<input type="image" src="images/kylaka.png" title="Голосовать">';
echo '</form>';
echo '<b>'.($ocenka_com[0]-$ocenka_com[1]).'</b></td>';
echo '</form></td></tr></table>';
echo '<table border="0" width="100%" style="border: 1px solid #eeeeee;">';
echo '<tr><td colspan="5" align="justify">';
echo wordwrap(nl2br($comments[message]), 70, "\n", 1);
echo '</td></tr></table>';
}
echo '</div><br>';
}
else echo '<hr>';

echo '<table style="border: 1px solid #4874a3;" cellspacing="2" cellpadding="0">';
echo '<tr align="center">';
echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list>1) echo '<a href="'.$_SESSION[mess_url].'">В начало</a>';
else echo 'В начало';
echo '</td>';
echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list>1) echo '<a href="'.$_SESSION[mess_url].'?comment_list='.($comment_list-1).'">Назад</a>';
else echo 'Назад';
echo '</td>';

echo col_pages((int)$count_list, (int)$comment_list, 3);

echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list<$count_list) echo '<a href="'.$_SESSION[mess_url].'?comment_list='.($comment_list+1).'">Вперед</a>';
else echo 'Вперед';
echo '</td>';
echo '<td bgcolor="lightgreen" width="65">';
if ($comment_list<$count_list) echo '<a href="'.$_SESSION[mess_url].'?comment_list='.$count_list.'">В конец</a>';
else echo 'В конец';
echo '</td></tr></table>';
?>
03.12.2012 22:16:18
Найти все сообщения Цитировать это сообщение
artindustrial Не на форуме
Младший сержант
*

Сообщений: 21
У нас с: Nov 2012
Сообщение: #37
RE: Поиск на сайте по комментариям из БД
Спасибо, все работает! Smile
03.12.2012 22:38:03
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru