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

Форум PHP

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

 

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

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

тема: Количество прочтений...
 
 автор: Squadron   (20.06.2006 в 09:05)   письмо автору
 
 

Может у кого есть скрипт кол-во прочтений, тоесть как в новостях обычно, рядом цифра скока раз прочитали?!

   
 
 автор: NFR   (20.06.2006 в 09:25)   письмо автору
 
   для: Squadron   (20.06.2006 в 09:05)
 

Дык... Такой код проще самому сделать, чем брать откуда-нибудь;-Р
А делается он просто: создаётся таблица в базе данных (либо файл) в котором записывается кол-во прочтений к каждой, например, новости... А в начале каждой новости вставлять скрипт, увеличивающий кол-во прочтения на 1...

   
 
 автор: Squadron   (20.06.2006 в 12:01)   письмо автору
 
   для: NFR   (20.06.2006 в 09:25)
 

а в коде это как выглядет? (если можно с базой сразу)

   
 
 автор: NFR   (20.06.2006 в 12:49)   письмо автору
 
   для: Squadron   (20.06.2006 в 12:01)
 

Вот так, например:
База(MySQL): prochten
Поля: kolvo varchar(255), idn int(11).
Где kolvo - количество прочтений, а idn - id новости.

В начале каждой новости следующий код:

$sql = "SELECT kolvo FROM prochten WHERE idn='$idn'";
$result = mysql_query($sql);

$kolvo = mysql_result($result, 0,"kolvo");
$kolvo +=1;

$sql2 = "UPDATE prochten SET kolvo='$kolvo'  WHERE (idn='$idn')";
$result2 = mysql_query($sql2);


Получение количетсва прочтений:

$sql = "SELECT kolvo FROM prochten WHERE idn='$idn'";
$result = mysql_query($sql);
$kolvo = mysql_result($result, 0,"kolvo");
echo $kolvo;

   
 
 автор: Loki   (20.06.2006 в 13:32)   письмо автору
 
   для: NFR   (20.06.2006 в 12:49)
 

Браво! Давненько тут никто не снимал штаны через голову!:)

kolvo int(11), idn int(11).



UPDATE kolvo SET kolvo=kolvo+1 WHERE idn=$idn;

   
 
 автор: NFR   (20.06.2006 в 14:24)   письмо автору
 
   для: Loki   (20.06.2006 в 13:32)
 

чего издеваешся, я спать хотел, думать не мог;-Р

   
 
 автор: Loki   (20.06.2006 в 16:54)   письмо автору
 
   для: NFR   (20.06.2006 в 14:24)
 

Именно поэтому хранишь число в текстовом поле и преобразуешь типы в скрипте?:)

   
 
 автор: NFR   (20.06.2006 в 17:07)   письмо автору
 
   для: Loki   (20.06.2006 в 16:54)
 

а ты думал я по жизни такой?;-Р

   
 
 автор: Squadron   (20.06.2006 в 13:33)   письмо автору
 
   для: NFR   (20.06.2006 в 12:49)
 

не работает, база че то не хочет!

   
 
 автор: NFR   (20.06.2006 в 14:26)   письмо автору
 
   для: Squadron   (20.06.2006 в 13:33)
 

а что говорит?..

   
 
 автор: Squadron   (20.06.2006 в 14:28)   письмо автору
 
   для: NFR   (20.06.2006 в 14:26)
 

говорит что не правельные поля, ошибка типа в запросе

   
 
 автор: kasmanaft   (20.06.2006 в 14:38)   письмо автору
 
   для: Squadron   (20.06.2006 в 14:28)
 

как Loki заметил, в начале каждой новости лучше писать

UPDATE kolvo SET kolvo=kolvo+1 WHERE idn=$idn;

при этом все должно работать, если " kolvo " и " idn " имеют тип " int " ... и конечно же, если такие поля вообще существуют ))

PS: ну да .. потому как kolvo varchar(255), переменную kolvo нужно было привести к строковому типу, после "$kolvo +=1;"
$a = '123';
echo gettype ($a).'<br>';
$a +=1;
echo gettype ($a).'<br>';
settype($a, 'string');
echo gettype ($a);

   
 
 автор: NFR   (20.06.2006 в 14:52)   письмо автору
 
   для: kasmanaft   (20.06.2006 в 14:38)
 

н-да... а зачем я для kolvo указал varchar(255)?..;-Р

   
 
 автор: Squadron   (20.06.2006 в 15:56)   письмо автору
 
   для: NFR   (20.06.2006 в 14:52)
 

че то вы запутали меня нахрен совсем ))))
вообщем че в базу вносить и что рядом с новостью пихать?

   
 
 автор: NFR   (20.06.2006 в 16:12)   письмо автору
 
   для: Squadron   (20.06.2006 в 15:56)
 

Значица так:
таблица с kolvo и idn. оба - int(11).
В начале новости пихаеш:

$sql2 = "UPDATE prochten SET kolvo=kolvo+1  WHERE (idn='$idn')"; 
$result2 = mysql_query($sql2); 

Вот;-Р

   
 
 автор: Squadron   (20.06.2006 в 16:28)   письмо автору
 
   для: NFR   (20.06.2006 в 16:12)
 

я в mysql 0
не мог бы ты мне дать как в текстовике это будет выглядеть )

   
 
 автор: NFR   (20.06.2006 в 17:09)   письмо автору
 
   для: Squadron   (20.06.2006 в 16:28)
 

в каком-таком текстовике?.. тебе запрос создания MySql -таблицы сделать?..
или я спать до сих пор хочу?-Р

   
 
 автор: Loki   (20.06.2006 в 17:02)   письмо автору
 
   для: NFR   (20.06.2006 в 16:12)
 


WHERE idn=$idn 

idn у вас не строковая, если помните.

   
 
 автор: NFR   (20.06.2006 в 17:08)   письмо автору
 
   для: Loki   (20.06.2006 в 17:02)
 

дык... и $idn тоже;-Р он их спокойно сравнивать должен;-Р

   
 
 автор: Squadron   (20.06.2006 в 17:17)   письмо автору
 
   для: NFR   (20.06.2006 в 17:08)
 

прикрепи аттачем файл sql и все )

   
 
 автор: valenok   (20.06.2006 в 17:58)   письмо автору
 
   для: Squadron   (20.06.2006 в 17:17)
 

Запусти такой скрипт:
<?php
$link
=mysql_connect(); mysql_select_db(); // Заполняй...
mysql_query("ALTER TABLE 'table_name' CHANGE 'idn' 'idn' INT NOT NULL",$link);

   
 
 автор: Loki   (20.06.2006 в 18:01)   письмо автору
 
   для: NFR   (20.06.2006 в 17:08)
 

скажем так, сравнить он их сравнит. и даже преобразование проведет. Но код от этого правильнее не станет.

   
 
 автор: valenok   (20.06.2006 в 18:21)   письмо автору
 
   для: Loki   (20.06.2006 в 18:01)
 

А где код?

   
 
 автор: NFR   (20.06.2006 в 21:04)   письмо автору
 
   для: Loki   (20.06.2006 в 18:01)
 

дык... нам правильность или результат нужен?..

   
 
 автор: Loki   (21.06.2006 в 09:19)   письмо автору
 
   для: NFR   (20.06.2006 в 21:04)
 

Правильность. Вы можете гарантировать что при смене версии MySQL не произойдет ужесточения требований к синтаксису? Я - нет.

   
 
 автор: JIEXA   (20.06.2006 в 22:10)   письмо автору
 
   для: NFR   (20.06.2006 в 12:49)
 

Млин ) посмеялся от души :D

   
 
 автор: valenok   (20.06.2006 в 22:16)   письмо автору
 
   для: JIEXA   (20.06.2006 в 22:10)
 

=)

   
 
 автор: NFR   (21.06.2006 в 06:15)   письмо автору
 
   для: JIEXA   (20.06.2006 в 22:10)
 

;-(

   
 
 автор: Squadron   (21.06.2006 в 10:01)   письмо автору
 
   для: NFR   (21.06.2006 в 06:15)
 

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

   
 
 автор: kasmanaft   (21.06.2006 в 11:11)   письмо автору
 
   для: Squadron   (21.06.2006 в 10:01)
 

Гы =)) попробую опишу нормально...
В общем, как я понимаю у тебя уже есть база данных с новостями.. если есть, то по идее у каждой новости ТАМ есть свой идентификатор, так что разумнее было бы не создавать новую таблицу (или даже базу) для хранения количества прочтений, а немного отредактировать имеющуюся (?) .. нужно добавить туда еще один столбец, скажем kolvo (тип int(11) ) ... возможно после этого добавления придется редактировать другие скрипты, где производится добавление данных в таблицу с новостями (надо будет учесть новый столбец) - точно сказать не могу, конечно же... дело твое - можешь создать еще одну таблицу или использовать имеющууся ... предпочтительнее второй вариант...

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

mysql_query ("UPDATE kolvo SET kolvo=kolvo+1 WHERE id=$id");

Вот и все :)) .. счетчик увеличен.. ($id - идентификатор новости)

   
Rambler's Top100
вверх

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