Avatar billede shoofixmafi Nybegynder
27. juni 2006 - 11:42 Der er 11 kommentarer og
2 løsninger

Tids begraenset inaktivitet

Hej

Jeg har et felt i tabel der hedder suspend.
Hvis vaerdien er 1 saa min abonent er ikke aktiv
hvis der var ikke nogle (heller ikke NULL) saa min abonent er aktiv

Jeg vil gerne lave et tid begraenset system
for min ikke aktiv abonenter. lad os sige 6 maaneder eller 182 dage, saa efter denne persioden bliver min abonenter aktiv igen

Hvordan?

Tak
Avatar billede arne_v Ekspert
27. juni 2006 - 13:06 #1
gem tidspunktet for deaktivering i et nyt felt og kør et job hver nat som
aktiverer dem som er deaktiveret for mere end 6 maaneder siden
Avatar billede shoofixmafi Nybegynder
27. juni 2006 - 13:24 #2
jeg er ikke programmer, derfor jeg spoerger efter hjaelp.
Kan du lav det for mig?
Avatar billede kongfjong Nybegynder
27. juni 2006 - 22:20 #3
Hvis ud laver en kolonne i din tabel, som du f.eks. kalder "deaktiveringstid" (eller noget andet mere sigende) og som er af formatet DATE, kan du bruge denne kolonne til at tjekke op på, om det er tid til at aktivere brugeren igen, altså sætte værdien i kolonnen "suspend" til alt andet end 1.

Den forespørgsel der kan tjekke om en bruger er deaktiveret og om det er tid til at aktivere brugeren igen, kan skrives som følgende:

UPDATE 'tabel' SET 'suspend' = 0 WHERE 'deaktiveringstid' <= DATE_SUB(CURDATE(), INTERVAL 6 MONTH)

Hvor 'tabel' selvfølgeligt skal erstattes af navnet på din tabel:)
Avatar billede kongfjong Nybegynder
27. juni 2006 - 22:22 #4
Skal i øvrigt tilføje at en kolonne af typen DATE har formattet CCYY-MM-DD, f.eks. 2006-06-27 for dagen i dag;)
Avatar billede shoofixmafi Nybegynder
27. juni 2006 - 23:45 #5
Jeg har tilfoejet et tabel der hedder (suspention_date) paa den maade

------------------------->>>
--
-- Table structure for table `idx_link`
--

CREATE TABLE `idx_link` (
  `link_id` mediumint(9) unsigned NOT NULL auto_increment,
  `category_id` mediumint(9) unsigned NOT NULL default '0',
  `title` varchar(100) NOT NULL default '',
  `url` text NOT NULL,
  `description` text NOT NULL,
  `contact_name` varchar(100) NOT NULL default '',
  `email` varchar(100) NOT NULL default '',
  `hits` mediumint(9) default NULL,
  `votes` smallint(6) NOT NULL default '0',
  `rating` float(4,2) NOT NULL default '0.00',
  `date` datetime NOT NULL default '0000-00-00 00:00:00',
  `bid` smallint(6) default NULL,
  `new` char(1) default NULL,
  `hot` char(1) default NULL,
  `top_rated` char(1) default NULL,
  `pick` char(1) default NULL,
  `password` varchar(20) default NULL,
  `updated` char(1) default NULL,
  `reviews` smallint(6) default NULL,
  `avg_review` float(4,2) default NULL,
  `last_updated` datetime default NULL,
  `official_review` text,
  `keywords` varchar(255) default NULL,
  `cat1` mediumint(6) NOT NULL default '0',
  `cat2` mediumint(6) NOT NULL default '0',
  `sp_cat` char(1) default NULL,
  `sp_cat_date_limit` date default NULL,
  `sp_cat_order` smallint(6) default NULL,
  `suspended` char(1) default NULL,
  `suspention_date` date NOT NULL default '0000-00-00',
  `reciprocal_url` varchar(255) default NULL,
  `photo` varchar(255) default NULL,
  PRIMARY KEY  (`link_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=898 ;

------------------------->>>

Er det OK eller skal jeg brug datetime ligesom `date` ?
Avatar billede shoofixmafi Nybegynder
28. juni 2006 - 00:00 #6
jeg har lavet om til: default NULL
Avatar billede shoofixmafi Nybegynder
28. juni 2006 - 00:12 #7
UPDATE idx_link SET suspended = 0 WHERE suspention_date <= DATE_SUB(CURDATE(), INTERVAL 6 MONTH)

1. Er det rigtig?
2. Kan man lav den som en cron job?
Avatar billede arne_v Ekspert
28. juni 2006 - 02:07 #8
re 2)

du kan vel lave en 1 linies shell script med

mysql -e UPDATE ...
Avatar billede kongfjong Nybegynder
28. juni 2006 - 12:43 #9
1) Det ser rigtigt ud.
2) Er ikke min stærke side, men det burde man bestemt:) Spørgsmål et blot om du kan sætte cronjobs op på dit webhotel, og i givet fald hvilket sprog det skal skrives i:)
Avatar billede arne_v Ekspert
28. juni 2006 - 13:13 #10
hvis det er et webhotel så er det nok tvivlsomt om man kan bruge cron

så kan man lade den første request i løbet af dagen triggere det
Avatar billede kongfjong Nybegynder
28. juni 2006 - 13:27 #11
Hm okay, synes jeg har kunnet bruge cron-jobs på de par webhoteller jeg har og har haft:) Men er så heller så rutineret i den sportsgren;)
Avatar billede shoofixmafi Nybegynder
01. juli 2006 - 17:37 #12
Jeg har et webhotel med cronjob og den virker fint www.sites-bank.com
kongfjong .. smid lige et svar
arne_v .. tak for din indsats
Avatar billede kongfjong Nybegynder
02. juli 2006 - 19:57 #13
Så gerne;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester