|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Denis Roshchin 2:5020/400 25 Jul 2001 21:05:54 To : All Subject : Re: ... -------------------------------------------------------------------------------- "Alexey V. Egoshin" <Alexey.V.Egoshin@p135.f4.n5052.z2.fidonet.org> wrote in message news:996074168@p135.f4.n5052.z2.ftn... > Как pеализовать следyющее: > из нескольких html докyментов с анекдотами фоpмиpовать пyтем голосования > поситителей сайта один html докyмент. (напpимеp:"Лyчшая десятка анекдотов"). Тебе принцып что-ли описать??... ну окей. Есть база данных(так легче намного), где пять поля: a_id, a_text, a_rating, a_peoples, a_date. уникальный номер анекдота, сам анекдот, эго рейтинг в сумме, сколько человек голосовало и дата занесения. Допустим шкала оценок такая: 5 - отлично, 4 - хорошо, 3 - нормально, 2 - плохо, 1 - ужастно. Когда юзер голосует - его оценка прибавляется к полю a_rating и значение a_people увеличивается на единицу. В итоге, потом будет возможно расчитать "настоящий рейтинг" спользуя формулу: a_rating/a_peoples. (можно расчитывать его на лету и допустим запихивать в туже базу данных, как a_realrating. но IMHO a_peoples тоже оставить, чтобы а) самому б) другим -можно было посмотреть сколько человек проголосало.) Hа странице с "лучшими анекдотами" делаешь select запрос примерно такого рода: select a_text, a_id from a_base where date [...]` order by a_realrating DESC limit 10; если надо чтобы все это было "в эйчтиэмэльках", то просто в конце, после каждого "проголосвавшего" по новой формируешь html-ку. Только это не очень разумно, так как если все делать динамическим, то перл будет работать с диском только при просмотре рэйтинга. Если же делать чтобы все было в html-ках, то перл будет активно работать с диском при каждом голосовании. Хочу напомнить, что именно работа с диском является самой медленной. скрипт предельно простой. ps. а сабж информативный делать, а?? -- #Denis Roshchin #denis@komkon.org #www.komkon.org/~denis/ --- ifmail v.2.15dev5 * Origin: MTU-Intel ISP (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/91044d72b85b.html, оценка из 5, голосов 10
|