1. Halo Guest, pastikan Anda selalu menaati peraturan forum sebelum mengirimkan post atau thread baru.

Mengurangi selisih waktu tiap baris

Discussion in 'Pemrograman Web' started by cloudy_one, Jul 14, 2013.

Tags:
  1. cloudy_one

    cloudy_one Newbie

    Joined:
    Jul 14, 2013
    Messages:
    1
    Likes Received:
    0
    saya mempunyai tabel berikut:

    Code:
    username   | time         
     -----------|--------------- 
    aq         |   05:55:07          
    aq         |   05:55:09    
    megi       |   05:55:37    
    megi       |   05:55:40         
     megi       |   05:55:45 
    
    nah setiap username baru, maka hasilnya yaitu mengurangi dirinya sendiri dengan bernilai nol, ketika saya coba menggunakan skrip Query MySQL seperti dibawah ini:

    Code:
    CREATE PROCEDURE selisih
    BEGIN
    SET @waktu= null;     SELECT username,        IFNULL(timediff(`waktu`,@waktu), 0) as selisih_waktu, @waktu := `waktu` as time     FROM mdl_temporer_log2 WHERE rolename = 'Student'     
    ORDER BY waktu;
    END
     
    
    tapi ketika di running skrip tersebut dengan php yaitu dengan
    Code:
    CALL selisih
    akan menghasilkan seperti berikut:

    Code:
     username   | selisih_waktu |   time             
     -----------|---------------|--------------     
    aq         |     0         |     05:55:07              
    aq         |  00:00:02     |     05:55:09        
    megi       |   00:00:18    |     05:55:37        
    megi       |  00:00:03     |     05:55:40              
    megi       |  00:00:03     |     05:55:45 
    
    tapi yang saya inginkan adalah hasil tabel seperti berikut:


    Code:
     username   | selisih_waktu |   time              
    -----------|---------------|--------------     
    aq         |     0         |     05:55:07              
    aq         |  00:00:02     |     05:55:09        
    megi       |   0           |     05:55:37        
    megi       |  00:00:03     |     05:55:40              
    megi       |  00:00:03     |     05:55:45 
    
    hasil tersebut hanya data pertama pada baris pertama yang mengurangi data waktunya sendiri yaitu bernilai nol, saya ingin mencoba di skrip php, tapi saya malah bingung, mungkin ada yang memiliki solusi atas permasalahan tersebut, agar memperoleh output seperti tabel yang saya inginkan tersebut, mohon bantuannya!!
     
  2. mp3online

    mp3online Super Hero

    Joined:
    Jul 19, 2011
    Messages:
    2,228
    Likes Received:
    294
    Location:
    jakarta
    kayaknya perlu ditambahi fungsi if pake looping for boss
    Code:
    if($i > 0 AND $username[$i] != $username[$i-1]) { $selisih_waktu[$i] = 0; }
    cmiiw
     
  3. nasdin

    nasdin Super Hero

    Joined:
    May 28, 2013
    Messages:
    806
    Likes Received:
    182
    wah ga ngerti ini apaan :-B

    kalo cuma buat dapetin selisih waktu apa ga enak gini?

    Code:
    SELECT table.username, table.time, IF( @diff =0, 0, Time_to_sec( time ) - @diff ) AS diff, @diff := Time_to_sec( time )
    FROM table, (
    
    SELECT @diff :=0
    ) AS x
    WHERE table.username = 'megi'
    
     

Share This Page