51

Re: Как увеличить количество строк/знаков?

Доброго времени суток!

Взял разные браузеры и посмотрел на ссылку с вариантом ($mnt+1) и вот вид ссыки в коммандной строке:
http://www.slava.sebastopol.ua/?cnt%20= … d%20=18132

Когда код имеет прежний вид $mnt вот вид ссылки в коммандной строке:
http://www.slava.sebastopol.ua/?cnt=sta … p;id=18132

В первый раз когда я помотрел на ссылку(в строке состояния) и увидел пробелы в коде ссылки я не посмотрел на командную строку. Оказывается символы в строке состояния отображаются в разных браузерах по своему, очевидно со шрифтами проблема.

Вот вид кода формирования ссылки:
$text_out = '<a href="http://'.
      $_SERVER[ "HTTP_HOST" ]."?".
      ( !empty( $cnt ) ? "cnt=".$cnt : "cnt=first" ).
      ( !empty( $yr ) ? "&yr=".$yr : "" ).
      ( !empty( $mnt ) ? "&mnt=".( $mnt + 1 ) : ( isset( $mnt ) ? "&mnt=".( $mnt + 1 ) : "" ) ).
      ( !empty( $day ) ? "&day=".$day : "" ).
      ( !empty( $id ) ? "&id=".$id : "" ).
      ( !empty( $act ) ? "&act=".$act : "" ).
      ( !empty( $plus ) ? $plus : "" ).'" class="'.
      ( !empty( $clas ) ? $clas : "sl" ).'" title="'.$title.'">';
    return( $text_out );
каждый элемент будь то mnt или cnt есть в таблице базы.

Вот код выборки из БД(если я правельно понял понятие "способ выборки из БД"):
$res = $conn->Execute ("SELECT year, month, day, rubr, zagol, vrez, text, podp, img, img_alt, text, id FROM $userstable WHERE year='$yr' AND month='$mnt' AND day='$day' AND counter='$cnt' ORDER BY id ASC");

Заранее благодарен за ответ.

52

Re: Как увеличить количество строк/знаков?

Victor2008
В формировании урла не надо прибавлять единицу. Верните как было, ведь ссылка работала, как вы говорили. ($mnt + 1) сделайте только на выводе даты, как я выше указал.

Пробуйте так, как выше сами указали: $res->fields[ "month" ]
Я не знаю как работает функция Execute() в объекте, чтобы сказать точно как данные из БД получать с ее помощью.

53

Re: Как увеличить количество строк/знаков?

Доброго времени суток!

Вы несовсем правельно поняли....
елемент кода для формирования ссылки находится отдельно от кода выборки текста из базы в другом месте:
( !empty( $mnt ) ? "&mnt=".( $mnt + 1 ) : ( isset( $mnt ) ? "&mnt=".( $mnt + 1 ) : "" ) ).

Вот это ( $mnt + 1 ) и именно в этом месте(код формирования ссылки) написано не мной, мне с этим надо работать, на работе.

Эти переменные(и есть формирование ссылки) работают из-под функции, допустим таже anchor(){};,  а потом переменные(из под функции формирования ссылки) подставляются к переменным выборки из базы допустим:
anchor($yr, $mnt, $day, $res->fields['id']),
ТАК ВОТ на этом этапе вслед за anchor()
для вывода в окне браузера даты обновления статей мной было добавлено именно в после выборки из базы ($mnt+1)
'<p class="day">'.$day.'.'.($mnt+1).'.'.$yr.'</p>'.'<h2>'.$res->fields[ "zagol" ].'</h2>'
а в конце подставленных переменных из базы ставится закрывающий тег </a>

так что в этом месте и эту единичку вписано не мной, она уже была, теперь мне нужно сней работать
( !empty( $mnt ) ? "&mnt=".( $mnt + 1 ) : ( isset( $mnt ) ? "&mnt=".( $mnt + 1 ) : "" ) ).
а вот как вывести из базы дату правельно вот это да?

Надеюсь что мои комментарии Вас окончательно не запутали.

Да, вдогонку, неподскажете простой способ собирания количества кликов по ссылке для каждой статьи(с отображением возле каждой статьи) с сохранением в базе(надо будет создать дополнительную ячейку в таблице, а какие параметры задавать)?

Заранее благодарен за ответ.

54

Re: Как увеличить количество строк/знаков?

Victor2008
Я ничего не понял.
Ясно только, что пробелы в url не из-за того что единица приплюсована при выводе даты.

Создайте для счетчика поле типа INT и приплюсовывайте к его значению единицу с помощью sql запроса UPDATE.

55

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

Мне кажется что-то проясняется, человек который до меня работал с сайтом и зная особенности mysql базы при переходе с 31 Декабря(т.е. 12-й месяц) на 1 Января(т.е. 1-й месяц)(т.е. что база сама посебе с 12 чсла на 1-еденицу не перейдет, а выведет 0-ноль) сделал код ссылки с этим расчетом и получилось следующее:
( $mnt + 1 )
т.е. просто пирплюсовал единичку!

Но чтобы переменные для вывода из базы(в таблице базы есть строка с таким же названием mnt)
не повторялись (теги, переменные, или просто их можно назвать сочетания букв) с переменными для ссылки, то мой предшественник сделал так:
$res->fields[ "mnt" ]

НО в таком случае цифрой нумерация месяка на сайте для каждой статьи отображалась бы не правельно, ведь mysql автоматически не ставит Январь месяц цифрой 1, mysql автоматически ставит цифру 0.

Зная этот номент мой предшественник отказался от идеи выводить дату для каждой статьи, ведь кому нужна не правельная дата на сайте возле свежего материала. Поэтому мой предшественник на сайте разместил для всего сайта сразу ОДНУ-текущую дату, а возле статей ничего более не размещал.

Всязи с этим у маня к Вам вопрос как пожно изменить код:
$res->fields[ "mnt" ]
чтобы именно в таком виде прибавить единицу +1. Если этот эпизод разрешится, возможно получится выводить правельную дату возле статьи.


Теперь по поводу счетчика кликов по ссылке.
Вот код:
название столбца в таблице базы counter
все ниже написанное находится в page_counter.php
<?php
      //соединение с базой
      $hostname = "localhost";
      $username = "root";
      $password = "password";
      $dbName   = "slava_sebastopol_ua";

        // Функция добавления новой записи в таблицу
function Insert($counter)
               {
               $insert = "INSERT INTO COUNTER SET counter=’".$counter."’, count = count + 1."’";
               $result = mysql_query($insert) or die("cannot query INSERT the database.<br>".mysql_error());
               return $result;
               }
      // Функция увеличения значения счетчика
function Update($counter)
               {
               $update = "UPDATE COUNTER SET count = count + 1, WHERE counter =’".$counter."’";
               $result = mysql_query($update) or die("cannot query UPDATE the database.<br>".mysql_error());
               return $result;
               }
       // Функция вывода значения счетчика на странице
function ShowCount($counter)
                  {
                  $show   = "SELECT count, date FROM PAGE_COUNTER WHERE counter=’".$counter."’";
                  $result = mysql_query($show) or die("cannot query SELECT the database.<br>".mysql_error());
                  $line   = mysql_fetch_array($result);
                  echo "<p>Просмотров: ".$line["count"]."</p>";
                  }                                   
mysql_close();
?>
Я неуверен правельный ли код?
и как механически должен он работать, ведь когда мышкой нажимаешь на ссылку статьи - это нажатие должен фиксировать щетчик и тетже добавлять единичку к общему числу уже насуществующих кликов и ссылка должна переходить на страницу статьи. А где тогда должен находиться код с переменными ссылки?

Заранее благодарю за ответ.

56

Re: Как увеличить количество строк/знаков?

Все то же самое.
($res->fields[ "mnt" ] + 1)

По счетчику. Сперва функция UPDATE, затем SELECT.

57

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

Спасибо большое, цифры даты заработали.

Когда подключил файл щетчика кликов page_counter.php браузер тут же выдал ошибку:
Parse error: syntax error, unexpected T_STRING in c:\usr\home\slava.sebastopol.ua\www\php\page_counter.php on line 28

вот вид кода после внесенных изменений:

<?php
      //соединение с базой
      $hostname = "localhost";
      $username = "root";
      $password = "password";
      $dbName   = "slava_sebastopol_ua";
      //название таблицы material
      //название столбца в таблице базы coun
      //все ниже написанное находится в page_counter.php
      // Функция увеличения значения счетчика
function Update($coun)
               {
               $update = "UPDATE material SET count = count + 1, WHERE coun =’".$coun."’";
               $result = mysql_query($update) or die("cannot query UPDATE the database.<br>".mysql_error());
               return $result;
               }
      // Функция вывода значения счетчика на странице
function ShowCount($coun)
                  {
                  $show   = "SELECT coun, date FROM material WHERE coun=’".$coun."’";
                  $result = mysql_query($show) or die("cannot query SELECT the database.<br>".mysql_error());
                  $line   = mysql_fetch_array($result);
                  echo "<p>Просмотров: ".$line["coun"]."</p>";
                  }
      // Функция добавления новой записи в таблицу
function Insert($coun)
               {
               $insert = "INSERT INTO COUN SET coun=’".$coun."’, count = count + 1."’";
               $result = mysql_query($insert) or die("cannot query INSERT the database.<br>".mysql_error());
               return $result;
               }                 
mysql_close();
?>

28-я строка это:
$insert = "INSERT INTO COUN SET coun=’".$coun."’, count = count + 1."’";

навсякий случай вот часть дампа со строкой куда должен записываться, сохраняться и откуда выводиться значение(цифрой) клик по ссылке:
`coun` int(11) NOT NULL default '0',

Заранее благодарю за помощ.

58

Re: Как увеличить количество строк/знаков?

Лишние символы в строке.

$insert = "INSERT INTO COUN SET `coun` = '".$coun."', `count` = `count` + 1";

59

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

Спасибо Вам большое за уточнение. Внес поправки в скрипт, однако скрипт работать не хочет.

Попробывал внести изменения и вот что получилось:
<?php

     $hostname = "localhost";
     $username = "root";
     $password = "password";
     $dbName   = "slava_sebastopol_ua";
     
     @mysql_connect ( $hostname, $username, $password, $dbName );
     @mysql_select_db("slava_sebastopol_ua")
       or die(mysql_error());
   
    $update = "update material set con = con + 1 where id='$id'";
    $result = mysql_query($update);
?>

В таком виде он почему-то работает. НО теперь ситуация такая что счетчик прибавляет единичку не только когда мышкой нажать на ссылку, но также счетчик срабатывает когда просто обновляешь окно браузера что совсем не нужно. Кроме того с одного сомпа(с одного IP адреса) можно сколько угодно раз захадить по ссылке и счетчик тоже это учитывает.

Как сделать так чтобы счетчик реагировал ТОЛЬКО на нажатие мышки на ссылку(чтобы не реагировал на обновление окна браузера) и чтоб ТОЛЬКО реагировал на разовый заход с одного компа(IP адреса)?

Что-то попадалось на глаза вроде _onmouseklik_(только с нажатия мышки по ссылке), а так же что-то вроде hit (учитываение одного +1 только IP адреса зашедшего) или я что-то напутал? Это как-то добавляется в код?
Если подскажете статью, буду признателен.

Заранее благодарю за ответ.

60

Re: Как увеличить количество строк/знаков?

Можно хранить отметку в сессии. Сессия сбрасывается при закрытии окна браузера. Если необходимо длительное хранение, то можно использовать вместо сессий куки.

<?php

@session_start();
if (empty($_SESSION['counter'])) {
    $_SESSION['counter'] = 1;

     $hostname = "localhost";
     $username = "root";
     $password = "password";
     $dbName   = "slava_sebastopol_ua";
     
     @mysql_connect ( $hostname, $username, $password, $dbName );
     @mysql_select_db("slava_sebastopol_ua")
       or die(mysql_error());
   
    $update = "update material set con = con + 1 where id='$id'";
    $result = mysql_query($update);
}

?>

http://lv.php.net/manual/ru/book.session.php
http://lv.php.net/manual/ru/function.setcookie.php

61

Re: Как увеличить количество строк/знаков?

Доброго времени суток.
Огромная благодарность, все замечательно работает.

Скажите каким образом можно сделать следующее:
с помощью данного кода:
<?php

@session_start();
if (empty($_SESSION['counter'])) {
    $_SESSION['counter'] = 1;

     $hostname = "localhost";
     $username = "root";
     $password = "password";
     $dbName   = "slava_sebastopol_ua";
     
     @mysql_connect ( $hostname, $username, $password, $dbName );
     @mysql_select_db("slava_sebastopol_ua")
       or die(mysql_error());
   
    $update = "update material set con = con + 1 where id='$id'";
    $result = mysql_query($update);
}

?>
фиксируется просмотр посетителем только один раз только одной статьи и если тотже посетитель заходит  по ссылке рядом на следующую статью этого же сайта то это нажатие уже не фиксируется счетчиком?
Или фиксируется?
Если не фиксируется, то как сделать так чтобы фиксировалось? Достаточно ли код:
$_SESSION['counter'] = 1;
изменить на:
$_SESSION['counter'] = 7;
или этот шаг не повлияет на то что один и тот же посетитель зайдет на разные статьи(допустим на посетитель прочитал две статьи на разных станицах сайта), и каждый заход на выбранную статью фиксировался бы для одного посетителя только раз для(только те статьи которые были прочитаны пользывателем) статьи?

Заранее благодарен за ответ.

62

Re: Как увеличить количество строк/знаков?

Victor2008
Для каждой статьи надо свою сессионную переменную выставлять. Как я понимаю $id содержит идентификатор статьи, в этом случае можно составить уникальное имя сессионной переменной:
$_SESSION['material_' . $id]

$_SESSION['counter'] = 1; // Единица здесь - это булев триггер, который указывает, что переменная имеет значение true.

63

Re: Как увеличить количество строк/знаков?

Доброго времени суток!

У меня новая задача нужно написать скрипт как если бы один посетитель оценил статью в 3 балла, а следующий оценил в 4 балла, а следующий -2, а вот скрипт должен выдать среднее значение оценки.
Скрипт недолжен показывать оценку последнего прочитавшего статью, а общую среднюю оценку!
аврианты оценки -5 -4 -3 -2 -1_1 2 3 4 5

Как написать такой скрипт? Осенка хранится в MySQL таблица material, -ячейка называется otv(тип поля bigint (60)), сам скрипт на php.

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

$userstable = "material";
$result = mysql_query( "SELECT * FROM $userstable WHERE id='$id'" );
$temp_array = mysql_fetch_array( $result );
        for( $i = 0; $i < 10; $i++ )
           {
             if( isset( $an ) and $an == $i )
               {
                 mysql_query( "UPDATE $userstable SET otv".$i."=".( $temp_array[ 'otv'.$i ] + 1 )." WHERE id=".$id );
              }
           }
но этод код всеголишь добавляет по одному - ( $temp_array[ 'otv'.$i ] + 1 ), а мне нужно чтобы код производил над имеющимся числом в базе математическое действие и выдавал средний результат на момент.

Как написать такой код?
Заранее благодарен за ответ.

64

Re: Как увеличить количество строк/знаков?

Victor2008
Надо в таблице завести два поля: для хранения скалькулированной оценки (десятичное число с минусом), поле rating; и для хранения количества проголосовавших (целое число), поле count. Тогда при записи мы складываем полученное от пользователя значение (от -5 до 5) с выбранной из rating, затем увеличиваем значение пол count на единицу, и делим первое на второе, получая дробное число, которое следует округлить.

Например, от пользователя мы получили 5.
$user_rating = 5;
round(($rating + $user_rating) / ($count + 1));

65

Re: Как увеличить количество строк/знаков?

Доброго времени суток.
Спасибо за детальный ответ.

Такой вопрос:
Если после математической обработки полученная сумма выводится с помощью - round? Если да то тогда возможно имеет иной вид:
$round(($rating + $user_rating) / ($count + 1));
чтобы потом можно было результат вывести на сайте возле статьи - <a  >'.$round.'</a> ?

66

Re: Как увеличить количество строк/знаков?

Victor2008
round - это функция округления, в данном случае, до целого числа.
$round = round(($rating + $user_rating) / ($count + 1));

67

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

Вы знаете такая штука:

дело в том что выбираемые оценки для оценивания статьи(цифры с именем поля an-5 до an5) находятся в таблице с названием OCENKA , ячейка(rating) для хранения осенки за статью находится в таблице, в которой нахдится и сама статья в таблице—MATERIAL, в таблице—MATERIAL также находится и ячейка(count) в которой хранится количество посетителей которые прочли данную статью.

штука в том что:
1. я незнаю как в таком случае должно быть обращение из кода:
$userstable = "material";
$result = mysql_query( "SELECT * FROM $userstable WHERE id='$id'" );
$temp_array = mysql_fetch_array( $result );
        for( $i = 0; $i < 10; $i++ )
           {
             if( isset( $an ) and $an == $i )
               {
                 mysql_query( "UPDATE $userstable SET otv".$i."=".( $temp_array[ 'otv'.$i ] + 1 )." WHERE id=".$id );
              }
           }
и если я заменю :
( $temp_array[ 'otv'.$i ] + 1 )
на
round(($rating + $user_rating) / ($count + 1));

это не работает, пока. Возможно я чего-то еще не вижу.

чем мне заменить $user_rating?
если название ячейки где храниться выбираемое читателем значение называется—an5(в таблице OCENKA), название строки—rating, count(в таблице MATERIAL)

В данном случае мне нужно чтобы оценка выбиралась из одной таблицы базы, сумма обрабатывалась сервером, а оценка записывалась бы в другую таблицу в базе.
Пока мест это неполучается. Может код в этом случае должен иметь другой вид?

Заранее благодарен за ответ.

68

Re: Как увеличить количество строк/знаков?

Victor2008
Я не понимаю структуры таблицы и как записываются в нее данные. Чтобы я понял и помог вам с кодом конкретно, необходимо показать структуру таблицы и прокомментировать что означает каждое поле в ней.

69

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

Понимаю, попробую насколько сумею описать механизм.
Дамп таблицы содержащей только баллы(отображаемые на сайте только в на старнице статьи) выбираемые читателем для оценки статьи после прочтения:
CREATE TABLE IF NOT EXISTS `ocenka` (
  `id` int(11) NOT NULL default '0',
  `zagol` mediumtext NOT NULL,
  `an1` text NOT NULL,
  `an2` text NOT NULL,
  `an3` text NOT NULL,
  `an4` text NOT NULL,
  `an5` text NOT NULL,
  `an6` text NOT NULL,
  `an7` text NOT NULL,
  `an8` text NOT NULL,
  `an9` text NOT NULL,
  `an10` text NOT NULL
) TYPE=MyISAM;

в колонке `zagol` в текстовой ячейке написано Дайте оценку статье.
в колонках an1......an10 в текстовых ячейках написаны баллы от -5...5

Часть дампа таблицы содержащей статьи+количество посетителей+рейтинг:
CREATE TABLE IF NOT EXISTS `material` (
  `id` int(11) NOT NULL auto_increment,
  `year` int(11) NOT NULL default '0',
  `month` int(11) NOT NULL default '0',
  `day` int(11) NOT NULL default '0',
  `coun` int(11) NOT NULL default '0',
  `rating` int(11) NOT NULL default '0',
  `rubr` text,
  `zagol` text,

в колонке `coun` находится число посетителей статей (отображаемое на сайте)
в колонке `rating` должна находится оценка каждой статьи (отображаемая на сайте)

Теперь далее поидее код который должен просто добавлять БАЛЛ пользователя (по одному, без математической операции) вписывать оценку за статью:

function ocenka_add()
  {
global $id,
        $an;       
                  $hostname = "localhost";
                  $username = "root";
                  $password  = "password";
                  $dbName    = "slava_sebastopol_ua";

        $userstable = "material";       
       
                  @mysql_connect( $hostname, $username, $password, $dbName );       
                  @mysql_select_db("slava_sebastopol_ua")
                  or die(mysql_error());

        #запрос на выборку данных из таблицы;
        $result = MYSQL_QUERY( "SELECT * FROM $userstable WHERE id='$id'" );
        #массив содержащий всю таблицу;
           $temp_array = mysql_fetch_array( $result );
        for( $i = 0; $i < 12; $i++ )
           {
             if( isset( $an ) and $an == $i )
               {
                 MYSQL_QUERY( "UPDATE $userstable SET rating".$i."=".( $temp_array[ 'rating'.$i ] + 1 )." WHERE id=".$id );
               }
           }
        $text_out = '<h3>Спасибо! Ваша оценка статьи «'.$temp_array[ 'zagol' ].'» принята.</h3>';
return( $text_out );
  }
Этот код(с мелкими доработками) работает в случае если сама ОЦЕНКА и ячейка куда вписывается РЕЗУЛЬТАТ находятся в ОДНОЙ ТАБЛИЦЕ, когда же все находится в разных таблицах(с мелкими доработками) этот код почему-то не работает.

Вот, вроде ничего не забыл. Только эта штуковина почему-то неработает.

С благодарностью за ответ.

70

Re: Как увеличить количество строк/знаков?

Создаем два поля в таблице material для хранения рейтинга.

ALTER TABLE `material` ADD `rating_sum` INT NOT NULL default '0',
ADD `rating_count` INT NOT NULL default '0'

Таблица ocenka не нужна.

Как я понял в переменной $an передается рейтинг выставленный пользователем от -5 до 5.

function ocenka_add() {
    global $id, $an;       

    $hostname = "localhost";
    $username = "root";
    $password = "password";
    $dbName   = "slava_sebastopol_ua";

    $userstable = "material";       
       
    @mysql_connect($hostname, $username, $password);       
    @mysql_select_db($dbName) or die(mysql_error());

    $result = mysql_query("SELECT * FROM $userstable WHERE `id` = '$id'");
    if ($temp_array = mysql_fetch_assoc($result)) {
        $rating_count = $temp_array['rating_count'] + 1;
        $rating_sum = $temp_array['rating_sum'] + $an;
        $rating = round($rating_sum / $rating_count); // Здесь подсчитывается рейтинг, если его надо вывести.
        mysql_query("UPDATE $userstable
                     SET `rating_count` = " . $rating_count . ',
                         `rating_sum`   = ' . $rating_sum . ' WHERE `id` = ' . $id );
    }

    $text_out = '<h3>Спасибо! Ваша оценка статьи «'.$temp_array['zagol'].'» принята.</h3>';
    return( $text_out );
}

71

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

Прошу меня простить видимо мне всетаки неудалось мое изложение механизма.

У меня такой вопрос скажите откуда возьмется(визуальное отображение) переченя оценок (от -5 до 5) на сайте так чтобы читатель видя перечень возможных оценок смог после прочтения статьи выбрать возможный вариант(нажать мышкой), затем подтвердить свой выбор нажатием на кнопку(оценить)?

72

Re: Как увеличить количество строк/знаков?

Добавка.
Момент в том что оценки -5....5 в моем случае находятся в базе. Т.е. браузер берет оценку из одной таблицы, вычисляет, а результат вычислений записывает в другую таблицу.

Или так нельзя?
вот код для отображения оценки из базы на сайте:
function html_ocenka_form()
  {
    $userstable = "ocenka";

    #запрос на выборку данных из таблицы;
    $result = MYSQL_QUERY( "SELECT * FROM $userstable ORDER BY id DESC" );
    $temp_array = mysql_fetch_array( $result );

    $text_out = '
<!-- Форма оценки  -->
<table>
    <tr>
      <td align="left">
        <form action="" method="POST" class="sl">
          <input name="id" type="hidden" value="'.$temp_array['id'].'" class="form" />
          <input name="act" type="hidden" value="add" class="form" />
          <input name="cnt" type="hidden" value="ocenka" class="form" />
          <center>'.$temp_array[ 'zagol' ].'</center><br>';
          for( $i = 1; $i <= 16; $i++ )
              {
                  if( $temp_array[ "an".$i ] != "" )
                      {
                          $text_out .= '
          <input name="an" type="radio" size="12" value="'.$i.'" class="form" /> '.$temp_array[ "an".$i ].'';
                      }
              }
          $text_out .= '
          <br>
          <center>
          <input type="submit" value="Оценить" class="form" /><br>'.
                  anchor( "ocenka", 1, 1, 1, $temp_array['id'], "list" ).'Просмотр результатов по этой оценке.</a>
          </center>
        </form>
      </td>
    </tr>
</table>
<!-- END Форма оценка  -->';

  return( $text_out );
  }

Заранее благодарю за ответ.

73

Re: Как увеличить количество строк/знаков?

Что делает функция ancor() я не знаю. Вывод радиокнопок можно сделать так:

function html_ocenka_form()
  {
    $userstable = "material";

    #запрос на выборку данных из таблицы;
    $result = mysql_query( "SELECT * FROM $userstable ORDER BY id DESC" );
    $temp_array = mysql_fetch_array( $result );

    $text_out = '
<!-- Форма оценки  -->
<table>
    <tr>
      <td align="left">
        <form action="" method="POST" class="sl">
          <input name="id" type="hidden" value="'.$temp_array['id'].'" class="form" />
          <input name="act" type="hidden" value="add" class="form" />
          <input name="cnt" type="hidden" value="ocenka" class="form" />
          <center>'.$temp_array[ 'zagol' ].'</center><br>';
          for( $i = -5; $i <= 5; $i++ )
              {
                  $text_out .= '
          <input name="an" type="radio" size="12" value="'.$i.'" class="form" /> '.$i;
              }
          $text_out .= '
          <br>
          <center>
          <input type="submit" value="Оценить" class="form" /><br>'.
                  anchor( "ocenka", 1, 1, 1, $temp_array['id'], "list" ).'Просмотр результатов по этой оценке.</a>
          </center>
        </form>
      </td>
    </tr>
</table>
<!-- END Форма оценка  -->';

  return( $text_out );
  }

74

Re: Как увеличить количество строк/знаков?

Доброго времени суток.
С прошедшим Вас праздником Пасхи!

Большое спсибо Вам за выложенный код.

Вы знаете такая штука, вот код:
function ocenka_add()
  {
  global $id,
        $an;
                  $hostname = "localhost";
                  $username = "root";
                  $password  = "password";
                  $dbName    = "slava_sebastopol_ua";
                  $userstable = "material";

                  @mysql_connect( $hostname, $username, $password, $dbName );
                  @mysql_select_db($dbName) or die(mysql_error());
                 
                  $result = MYSQL_QUERY( "SELECT * FROM $userstable WHERE `id` = '$id'" );
                  if ($temp_array = mysql_fetch_assoc($result))
                     {
                         $count  = $temp_array['count'] + 1;
                         $rating = $temp_array['rating'] + $an;
                         round($count / $rating);
                         mysql_query("UPDATE $userstable
                                                        SET `count` = " . $count . ',
                                                              `rating` = ' . $rating . ' WHERE `id` = ' . $id );
                     }
                   $text_out = '<h3>Спасибо!<br> Ваша оценка статьи «'.$temp_array['zagol'].'» принята.</h3>';
                  return( $text_out );
    }

мной немонго был переделан код с учетом названия в таблице колонок.
Вы знаете онтересная штука вот эта строка:
round($count / $rating);
вообще не обрабатывает математически, действие заканчивается на:
$rating = $temp_array['rating'] + $an;

Но и это еще не все. Почему-то какой бы статье не дал оценку, оценка записывается только для одной, самой последней статьи в базе. Возможно с учетом моих изменений я неправильно изменил код.

Буду благодарен за Ваш совет.

75

Re: Как увеличить количество строк/знаков?

Эта строка не нужна, так как подсчитывает рейтинг для вывода, который здесь не используется.
round($count / $rating);

Статья передается у вас в переменной $id. Смотрите как она приходит и чем является.