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

Форум PHP

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

 

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

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

тема: рейтинг коментариев
 
 автор: Андрей_Зубарь   (12.10.2009 в 15:38)   письмо автору
 
 

есть скрипт:


     <?  //вывод коментов
    
$res_comentsmysql_query ("SELECT * FROM coments WHERE post='$id'ORDER BY id",$db);
    
    if (
mysql_num_rows($res_coments) >0
    {
        
    
        
$myrow_comentsmysql_fetch_array($res_coments);//масив значений коментариев
        
            
do
            {  
               
$author_r=$myrow_coments["author"];
               
                echo 
"
             
                     <table class='wallpost'>
                          <tr>

                            <td class='image'>
                            <img src='img/b5825536.gif'>
                            <p>
                            <img src='img/"
.$myrow_coments["reyting"].".jpg'>
                            </p>
                            <p>
                            <form action='rate.php' method='post' name='submit' target='_blank'>
                            <input type='image' src='img/ico_rate.gif' value='"
.$author_r."'
                             title='Добавить  рейтинг к ответу' name='"
.$myrow_coments["reyting"]."'>
                            <input name='id' type='hidden' value='"
.$id."'>
                            </form>
                            </p>
                            </td>  
                       
                           <td class='info'>
                            <div class='header'><div class='dArrow'></div>
                              <div style='font-weight: bold;'>"
.$myrow_coments["author"]."</div>
                             <b>написал(а)</b><br />

                             <small> Дата:"
.$myrow_coments["date"]." </small>
                            </div>
                        
                            <div class='text' id='wPost68177652' style='width: 315px; overflow: hidden;'> Ответ: <p>
                            "
.$myrow_coments["text"]." </p></div>
                            <div class='actions'> 
                             <a href='/wall.php?id=22032769&person=9532829'><small>Лично</small></a>
                             <span class='sdivide'>|</span><a href='ответить автору'>
                             <small>видят все</small></a><span class='sdivide'>|</span>
                         
                         

                            </div>
                           </td>
                          </tr>
                         </table>"
;

                if (isset(
$myrow_coments["vid"])) 
                {
                    echo 
$myrow_coments["vid"];
                }
            }
            
           while (
$myrow_comentsmysql_fetch_array($res_coments));
       }
    
?>
    



не знаю как в файле rate.php прописать переменную $author_r


сам скрипт rate.php:

<?
  
include('includes/db_connect.php'/*соединение с бызой  */       ?>
 <? echo 'привет';
 
if (isset(
$_POST['id']))           
      {
          
$id$_POST['id'];
      }  
      
 if (isset(
$_POST['author_r']))           
      {
          
$author_r$_POST['author_r'];
      } 
           
 
$resmysql_query ("SELECT reyting, user FROM coments WHERE post='$id' ,author=$author_r",$db);
 if (!
$res)
 {
     exit(
mysql_error());
 }
 
$myrowmysql_fetch_array ($res);
 
$new_reyting$myrow['reyting'] + 1;
 
$new_user$myrow['user'] + 1;
 
$updatemysql_query ("UPDATE coments SET reyting='$new_reyting' , user='$new_user' WHERE post='$id' , author= $author_r",$db);
 
 if (
$update)
 {
  echo 
"<html><head>
            <meta http-equiv='Refresh' content='0; URL=post.php?id=
$id'>
            </head></html>"
;
            exit();     
 }
 
?>


для того, что бы в базе отыскать нужный комент, его я ищу по номеру комента , что соответствует посту и по автору комента


при всём этом выдаёт ошибку :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'author=' at line 1

  Ответить  
 
 автор: Slo_Nik   (12.10.2009 в 17:28)   письмо автору
 
   для: Андрей_Зубарь   (12.10.2009 в 15:38)
 

"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'author=' at line 1"
вот перевод
"У вас ошибка в запросе; обратитесь к руководству, которая соответствует вашей версии сервера MySQL на предмет корректного синтаксиса для использования рядом с "автором = 'в строке 1"
что то в форме у тебя не так, кнопку я так и не нашёл, может плохо смотрел...
в теге "<form>" есть атрибут name" со значением "submit", зачем?
создай кнопку
"<input type="submit" name="sub">", после нажатия на неё у тебя уйдут данные массива "$_POST" и тогда в файле rate.php ты молучишь "S_POST['author_r']" и присвоишь это значение переменной $author_r.

  Ответить  
 
 автор: Андрей_Зубарь   (12.10.2009 в 22:11)   письмо автору
 
   для: Slo_Nik   (12.10.2009 в 17:28)
 

изменил форму на:
 <form action='rate.php' method='post' name='form' target='_blank'>
                <input name='id' type='hidden' value='".$id."'>
                            <input name='author_r' type='hidden' value='".$author_r."'>
                            <input type='submit' name='sub' value='Оценить'>
                            </form>


и файл rate.php

<?
  
include('includes/db_connect.php'/*соединение с бызой  */       ?>
 <? 
 
 
echo "привет '.$author_r.'";
 echo 
"привет '.$id.'";
if (isset(
$_POST['id']))           
      {
          
$id$_POST['id'];
      }  
      
 if (isset(
$_POST['author_r']))           
      {
          
$author_r$_POST['author_r'];
      } 
           
 
$resmysql_query ("SELECT reyting, user FROM coments WHERE post='$id' ,author='$author_r'",$db);
 if (!
$res)
 {
     exit(
mysql_error());
 }
 
$myrowmysql_fetch_array ($res);
 
$new_reyting$myrow['reyting'] + 1;
 
$new_user$myrow['user'] + 1;
 
$updatemysql_query ("UPDATE coments SET reyting='$new_reyting' , user='$new_user' WHERE post='$id' , author= $author_r",$db);
 
 if (
$update)
 {
  echo 
"<html><head>
            <meta http-equiv='Refresh' content='0; URL=post.php?id=
$id'>
            </head></html>"
;
            exit();     
 }
 
?>



но в браузере выдаёт:
привет '..'привет '..'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'author='питер'' at line 1


почему не передаются переменные??

спецом поставил

<?
echo "привет '.$author_r.'";
 echo 
"привет '.$id.'";
?>

  Ответить  
 
 автор: Slo_Nik   (12.10.2009 в 23:17)   письмо автору
 
   для: Андрей_Зубарь   (12.10.2009 в 22:11)
 

посмотри что я писал тебе выше, всё та же ошибка, ошибка в sql запросе
в начале скрипта напиши "error_reporting(E_ALL);"
вот здесь у тебя ошибка и выводить после
<? 
echo "привет '.$author_r.'"
 echo 
"привет '.$id.'"
?>

и выводить после
<?php
if (isset($_POST['id']))            
      { 
          
$id$_POST['id']; 
      }   
       
 if (isset(
$_POST['author_r']))            
      { 
          
$author_r$_POST['author_r']; 
      }
?> 

замени одинарные кавычки на двойные. потому у тебя и не выводит автора и id
последуй совету neadekvat

  Ответить  
 
 автор: Metandrostenalon   (13.10.2009 в 11:19)   письмо автору
 
   для: Андрей_Зубарь   (12.10.2009 в 22:11)
 

> WHERE post='$id' , author= $author_r

запятую на AND сменить пробовали?

  Ответить  
 
 автор: Андрей_Зубарь   (13.10.2009 в 16:12)   письмо автору
 
   для: Metandrostenalon   (13.10.2009 в 11:19)
 

<?
$author_id
=$myrow_coments["id"];



 <
form action='rate.php' method='post' name='form' target='_self'>
                            <
input name='id' type='hidden' value='".$author_id."'>
                            <
input name='post_id' type='hidden' value='".$id."'>
                            <
input type='image' src='img/ico_rate.gif' title='Добавить  рейтинг к ответу'>
                            </
form>

?>


такая вот форма

такой вот файл обработки:

 <? 
 
 
 
echo "Бал к рейтингу добавлен";
if (isset(
$_POST['id']))           
      {
          
$id$_POST['id'];
      }  
      
if (isset(
$_POST['post_id']))           
      {
          
$post_id$_POST['post_id'];
      }  
      
           
 
$resmysql_query ("SELECT reyting, user FROM coments WHERE id='$id'",$db);
 if (!
$res)    //выведет нам ошибки если таковы есть
 
{
     exit(
mysql_error());
 } 
 
 
$myrowmysql_fetch_array ($res);
 
$new_reyting$myrow['reyting'] + 1;
 
$new_user$myrow['user'] + 1;
 
$updatemysql_query ("UPDATE coments SET reyting='$new_reyting' , user='$new_user' WHERE id='$id'",$db);
 
 if (
$update)
 {
  echo 
"<html><head>
            <meta http-equiv='Refresh' content='0; URL=post.php?id=
$post_id'>
            </head></html>"
;
            exit();     
 }
 
?>


всё заработало, всем спасибо

  Ответить  
 
 автор: neadekvat   (12.10.2009 в 17:33)   письмо автору
 
   для: Андрей_Зубарь   (12.10.2009 в 15:38)
 

В запросе
author= $author_r
замените на
author= '$author_r'

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

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