Здравейте.Опитвам се да направя една система за отчитане на постове но работеща на следния принцип:
Имаме потребители, те са записани в първата таблица users, всеки си има уникално id и някаква зададена стойност от точки;
users table
Имаме постове в posts таблицата- те си имат уникални id, имат информация за id на юзера, който ги е създал, време на създаване, както и някаква стойност.
posts table
Какво целя- да си създам скрипт, който да:
пускам на всеки 5 минути примерно с кронджоб, за да изпълнява следното- отива в post таблица, взима даден запис, генерира текущо unix време, вади от него времето lasttime колонката, умножава го по стойността, и след това отива в users таблицата, намира id-то което съответсва на stoinostid от posts таблицата и вади от неговата stoinost!
е.... не е баш ламерски въпроса- все пак php е невероятен инструмент и няма само print и if else, а може да му се наложи на човек и математика да бори с него.Докъде съм се преборил аз- в документацията четох доста за unix time и го разцъках смятам няма да е проблем- взема сегашното време преправя го в минути, вадо от него lasttime записа и след като свърши присвоява на lasttime записа в таблицата сегашното време- по този начин след 5 мин като се изпълни пак скрипта ще отчете за последните 5 мин, а не 10, ако бяхем оставили първият запис без да го подмениме.Това което не мога да реализирам е как така да става, че скрипта да ... как да го кажа, да ги пречислява изчислените стойности и да ги вади точно от този в users чието id съвпада с stoinostid на самият запис... друго нещо което много ме притеснява, как би се държало дори и да ударите едно рамо и да го напишеме, как би се държало едно такова скриптче от гледна точка на ресурси- прощавайте за невежеството но на мен ми се струва доста ресурсоемко за 25 000 записа примерно на всеки 5 та билото и на 15 минути...В самата mysql заоявка предполагам че трябва да се направи с цикъл, за де се извърши действието за всички в post таблицата, а не само за определени.Не изключвам и друга възможност- това което така се постарах да ви опиша, да е неправилен начин за това което искам, а то именно е - хората имам някакви точки най-общо казано, всеки пост в зависимост от времето което стои черпи точки и то определено количество- в едната секция на форума черпи 5 точки за 5 минути, а в друг само 1 и т.н.Работата е че бих искал да го напарвя за време, а не само- постне човек и еди си колко точки му олеква акаунта...
Предварително благодаря на всички които биха ми помогнали- от логическа гледна точка и самият модел каквото можах направих и смятам, че ще работи стига да не си остане само на "хартия в чартежите"
up
хммм на никой ли не му се занимава, поне да ми даде насока някаква? постарах се възможно най-ясно да го обясна, тъй че да може човек който има позаннията поне да може да ме насочи...
Имаме потребители, те са записани в първата таблица users, всеки си има уникално id и някаква зададена стойност от точки;
users table
Код:
id | stoinost |
1 |3864 |
2 |1952 |
3 |1012 |
4 |463 |
Имаме постове в posts таблицата- те си имат уникални id, имат информация за id на юзера, който ги е създал, време на създаване, както и някаква стойност.
posts table
Код:
id | stoinostid | lasttime | stoinost
1 |3 |2007-03-17 12:07:12 |25
2 |1 |2007-03-17 13:13:56 |12
3 |1 |2007-03-17 13:17:14 |8
4 |3 |2007-03-17 13:38:00 |17
5 |4 |2007-03-17 14:03:06 |18
6 |2 |2007-03-17 15:48:51 |4
7 |2 |2007-03-17 16:19:13 |1
8 |2 |2007-03-18 01:13:50 |33
9 |4 |2007-03-18 01:19:02 |15
10 |1 |2007-03-18 11:03:50 |9
Какво целя- да си създам скрипт, който да:
пускам на всеки 5 минути примерно с кронджоб, за да изпълнява следното- отива в post таблица, взима даден запис, генерира текущо unix време, вади от него времето lasttime колонката, умножава го по стойността, и след това отива в users таблицата, намира id-то което съответсва на stoinostid от posts таблицата и вади от неговата stoinost!
е.... не е баш ламерски въпроса- все пак php е невероятен инструмент и няма само print и if else, а може да му се наложи на човек и математика да бори с него.Докъде съм се преборил аз- в документацията четох доста за unix time и го разцъках смятам няма да е проблем- взема сегашното време преправя го в минути, вадо от него lasttime записа и след като свърши присвоява на lasttime записа в таблицата сегашното време- по този начин след 5 мин като се изпълни пак скрипта ще отчете за последните 5 мин, а не 10, ако бяхем оставили първият запис без да го подмениме.Това което не мога да реализирам е как така да става, че скрипта да ... как да го кажа, да ги пречислява изчислените стойности и да ги вади точно от този в users чието id съвпада с stoinostid на самият запис... друго нещо което много ме притеснява, как би се държало дори и да ударите едно рамо и да го напишеме, как би се държало едно такова скриптче от гледна точка на ресурси- прощавайте за невежеството но на мен ми се струва доста ресурсоемко за 25 000 записа примерно на всеки 5 та билото и на 15 минути...В самата mysql заоявка предполагам че трябва да се направи с цикъл, за де се извърши действието за всички в post таблицата, а не само за определени.Не изключвам и друга възможност- това което така се постарах да ви опиша, да е неправилен начин за това което искам, а то именно е - хората имам някакви точки най-общо казано, всеки пост в зависимост от времето което стои черпи точки и то определено количество- в едната секция на форума черпи 5 точки за 5 минути, а в друг само 1 и т.н.Работата е че бих искал да го напарвя за време, а не само- постне човек и еди си колко точки му олеква акаунта...
Предварително благодаря на всички които биха ми помогнали- от логическа гледна точка и самият модел каквото можах направих и смятам, че ще работи стига да не си остане само на "хартия в чартежите"
up
хммм на никой ли не му се занимава, поне да ми даде насока някаква? постарах се възможно най-ясно да го обясна, тъй че да може човек който има позаннията поне да може да ме насочи...