11. marts 2006 - 14:19
#1
hmmm - jeg ved faktisk ikke om man kan gøre det i mySQL. Men det kan sagtens lade sig gøre i dit programmeringssprog - jeg har selv skrevet et skript i php der kun viser den nyeste nyhed - og kun hvis den er skrevet inden for de sidste 7 dage (der er intet grimmere end out-datede nyheder).
Jeg ved ikke hvilken application eller programmeringssprog du har gang i, men siden du bruger mySQL, så er det jo plausibelt at det er PHP. Og så gør du bare sådan her:
// GETTING NEWS, IF ANY AND SETTING NEWSSWITCH
// Getting date.
$cur_year = date("Y");
$cur_month = date("m");
$cur_date = date("d");
$cur_hour = date("H");
$cur_min = date("i");
$cur_sec = date("s");
$fulldate = $cur_year."-".$cur_month."-".$cur_date." ".$cur_hour.":".$cur_min.":".$cur_sec;
// Getting news.
$newssql = mysql_query("SELECT n.id AS nid, n.title, n.content, n.source, n.source_url, n.date AS newsdate, n.author_id, u.id, u.username FROM news AS n, user AS u WHERE u.id = n.author_id ORDER BY newsdate DESC") or die(mysql_error());
$newsresult = mysql_fetch_array($newssql);
// Calculating date difference
$curdate_calc = mktime($cur_hour,$cur_min,$cur_sec,$cur_month,$cur_date,$cur_year);
$newsdate_calc = mktime($hour,$min,$sec,$month,$day,$year);
$date_diff = $curdate_calc-$newsdate_calc ;
$week_diff = $date_diff/60/60/24/7;
// Setting newsswitch and the width of the news
if ($week_diff < 1) {
$news = true;
} else {
$news = false;
}
Det her er sådan som mit script ser ud på stående fod (det kan tænkes at der er en smartere måde - er rimelig ny i PHP+mySQL). Men hvis det ksal tilpasses dit scenarie, så ændrer du bae det sted hvor vi regner forskellen ud:
// Calculating date difference
$curdate_calc = mktime($cur_hour,$cur_min,$cur_sec,$cur_month,$cur_date,$cur_year);
$newsdate_calc = mktime($hour,$min,$sec,$month,$day,$year);
$date_diff = $curdate_calc-$newsdate_calc ;
$tenmin_diff = $date_diff/60/10;
Således får du altså kun nyheder der er skrevet inden for de sidste 10 minutter.
Jeg håber at det hjalp.
vh. Laust
11. marts 2006 - 15:23
#2
hmmmm jeg vil helst lave det i sql ..... noget såen her
SELECT topic FROM tbltopic where createddate > (curdate() + curtime()-INTERVAL 10 minute) ;
Men jeg ved ikke hvordan jeg får fat dags dato med klokkeslet??+