Jump to content
php.lv forumi

super montāža ar datumiem


snach15

Recommended Posts

kr4 tēmu sāku te - http://php.lv/f/topic/18495-javascript-taimeris/

lai saprastu par ko iet runa .. tagad tagad pārģāju uz php tad uzrakstīšu te ...

 

tātad samurgoju scriptu drausmīgi bet kautkas darbojas ... tikai rodas sīki gļuki reizēm jo laiks iet līdz 60 un tad tur netā atkal atņemas un atkal rezultāts nav īstaiss.... varbūt kāds varētu palīdzēt izdomāt loģiskāk kā kautko tādu dabūt gatavu?

$kverijs = mysql_query("SELECT * FROM user WHERE username='test'"); 
$row = mysql_fetch_array($kverijs);

   $mins = date("i");
   $secs = date("s");

        //minutes
 $m = $row['minutes'];
 $at = $mins - $m;
 $tr = $at * 60;

        //sekundes
 $tg = $secs - $row['sekundes'];

        //kopa pagajis laiks(sekundēs)
 $kopa = $tg + $tr;

    echo $kopa;

mysql_query("UPDATE user SET sekundes = $secs WHERE username='test'");
mysql_query("UPDATE user SET minutes  = $mins WHERE username='test'");

Edited by snach15
Link to comment
Share on other sites

Ne par tēmu, bet par stilu.

Iemācies sakarīgi rakstīts kvērijus. Visi mysql vārdi, SELECT, WHERE, ORDER utt rakstās ar lielajiem burtiem, bet tabulas, lauki utt vai nu ar mazajiem, vai pirmais-burts-lielais.

 

Slikti:

Update user set sekundes = $secs where username='test'

Labi:

UPDATE user SET sekundes = $secs WHERE username = 'test'

Edited by briedis
Link to comment
Share on other sites

Ja citi,tad es ar vēl mazliet par stilu. SELECT * nozīmē izvilkt datus no visiem tabulas laukiem,bet šajā gadījumā tev vajag tikai divus: 'minutes un 'sekundes'. Nav vajadzīgs slogot bāzi,atlasot to,kas nav vajadzīgs.Var rakstīt vienkārši:

$kverijs = mysql_query(" SELECT minutes, sekundes FROM user WHERE username='test' "); 

Tāpat ielasot masīvu, mysql_fetch_array() reti kad ir vajadzīgs,jo bez vajadzības atgriež abus tipus-gan numurētu,gan asociatīvo.Ja tiek izmantots vienīgi otrais,tad optimālāk manuprāt ir:

$row = mysql_fetch_assoc($kverijs);

Par laika rēķināšanu-ērtāk būtu glabāt nevis minūtes un sekundes atsevišķi,bet gan vienkārši pēdējo darbību vai nu kā UNIX_TIMESTAMP vai arī DATETIME,kas labāk tīk(te forumā var pameklēt abu veidu trūkumus un atšķirības).Tas ļaus visu sarēķināt mysql pusē un atgriezt jau gatavu rezultātu.Par UPDATE: nav vajadzības taisīt 2 atsevišķus pieprasījumus uz bāzi,ja viņus var apvienot 1 kverijā.Šī vietā:

mysql_query("UPDATE user SET sekundes = $secs WHERE username='test'");
mysql_query("UPDATE user SET minutes  = $mins WHERE username='test'");

raksti

mysql_query(" UPDATE user SET sekundes = '".$secs."', minutes='".mins."' WHERE username = 'test' ");

Bet tās vairāk optimizācijas lietas :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...