Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: MySQL ajan vertailu (time)

FlashBack [28.03.2008 15:05:42]

#

Työn alla peli jossa mahdollisuus tallentaa tulos kantaan jos pelin aika on riittävän hyvä. Eli aika ratkaisee. Nyt siis ongelmana se, että miten kannassa olevaa aikaa ja pelaajan aikaa voi vertailla keskenään. Aika on siis muotoa 00:00:00.

Highscores-listalla näytetään 20 parasta aikaa eli paras vaihtoehto lienee verrata aikaa 20. parhaaseen aikaan. Ja jos aika on parempi niin annetaan mahdollisuus tallentaa. Miten tuo vertailu toteutetaan?

Teuro [28.03.2008 15:35:01]

#

Hakemalla kaikki tallennetut ajat kannasta ja järkkäämällä ne nousevaan järjestykseen, sekä lopuksi vertaamalla pelaajan aikaa viimeisimpään aikaan. Jos se on parempi kuin huonoin kannassa oleva tallennetaan aika kantaan.

Niko [28.03.2008 15:37:06]

#

Tallentamalla sekuntteina ja muotoilemalla vasta PHPssä voit

$res = mysql_query("
SELECT COUNT(*)
FROM tulokset
WHERE aika =< $tulos");

list ($sijoitus) = mysql_fetch_row($res);
mysql_free_result($res);

$sijoitus++;

$sijoitus on monenneksiko tulos menisi.

FlashBack [02.04.2008 09:33:35]

#

Oolrait.

Nyt ois ongelmana tallentaminen. Ilmeisesti en voi stringinä tuota tallennusta tehdä?? Ainakin nyt kantaan tallentuu joka kerta 00:00:00. Pitääkö ajalle tehdä jonkin sortin tyypitys?

Vasta_alkaja [02.04.2008 12:36:02]

#

Tietokantaan kenttä aika ja sille arvoksi timestamp

tallennus insert into taulu set aika = NOW()

sitten vertailu select aika from taulu order by aika

Niko [02.04.2008 12:54:04]

#

FlashBack kirjoitti:

Oolrait.

Nyt ois ongelmana tallentaminen. Ilmeisesti en voi stringinä tuota tallennusta tehdä?? Ainakin nyt kantaan tallentuu joka kerta 00:00:00. Pitääkö ajalle tehdä jonkin sortin tyypitys?

muutat sekunneiksi

jotenkintyyliin:

<?php
$aika = '30:25:05'; // 30 tuntia 25 minuuttia 5 sekuntia
$aika = explode(':', $aika)
$aika = (int) $aika[2] + 60 * (int) $aika[1] + 3600 * (int) $aika[0];
?>

Vasta_alkaja [02.04.2008 13:30:48]

#

aah.. käsitin hieman väärin.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta