Avatar billede badal Nybegynder
11. marts 2006 - 13:47 Der er 4 kommentarer og
1 løsning

Nyeste indlæg

Hvordan udtrækker jeg indlæg der maks er 10 min gamle??+ jeg har en række med dato + klokkeslet
Avatar billede laustdeleuran Nybegynder
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
Avatar billede badal Nybegynder
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??+
Avatar billede laustdeleuran Nybegynder
11. marts 2006 - 16:09 #3
Rent personlig interesse - virker det der sql? I så fald er det jo noget simplere end min "workaround"...
Avatar billede badal Nybegynder
11. marts 2006 - 19:10 #4
Ja ..... har fået det til at virke..........

Du kan bruge nedenstående sql sætning til at hente indlæg der maks er 10  minutter gamle.

SELECT *  FROM tbltopic where datecreated  > (now()-INTERVAL 10 minute) ;
Avatar billede laustdeleuran Nybegynder
13. marts 2006 - 10:12 #5
det lyder sq smart - prøver det når jeg kommer hjem :D tak!
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