PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
kontroll, kas praegu käib mõni saade
Postitaja: opilane 2016-02-03 19:15:43
tere foorumlased.

õpin ja olen kaks päeva ühe asjaga mässanud, enam ei jaksa.. ehk oskab keegi aidata ja saan oma asjaga edasi minna.

mul on tabel, kuhu olen sisestanud kindlale ajale tegevuse ja igal tegevuse on kindel alagrupp kuhu ta kuulub. tegevusele määran algus ja lõpp aja, formaadil 2016-01-22 02:00:00 , tegevused on tunni kaupa, et ainult tunnid muutuvad(erandiks on olukord kui tegevus algab täna kell 11 õhtul näiteks ja lõppeb kell 1 öösel, siis muutub ka päev jah).

Ja mul on vaja kuvada välja kõik alagrupid(sellega olen hakkama saanud) ja iga alagrupi taga kuvada tekst, mis tegevus selle alagrupi all hetkel käib ja samas soovin, et hetkel käimas oleva tegevuse all oleks ka joon mis näitab, kui palju antud tegevuse algusest möödas on/kuna lõppeb(ajax osa, et uuendaks sisu, sain ka hakkama).
ja kui hetkel sellel alagrupil ei käi ühtegi tegevust, siis ütleks, et et hetkel pole sellel alagrupil tegevui, kuid järgmine tegevus algab sel ajal

Teksti sai siia praegu palju, kuid tegelikult see koodi osa on kindlasti väike. kui keegi mingi näite ette teeb, oleks muidugi eriti vinge aga oleksin ka ülimalt tänulik kui keegi suunaks mu õigetele lehtedele(ilmselt ei ole neid ühel lehel koos).

Aitäh
RE: kontroll, kas praegu käib mõni saade
Postitaja: ise php 2016-02-03 21:53:36
Midagi sellist?

PHP kood:
 
    
function toTimestamp($a){
        
$date date_parse_from_format('Y-m-d H:i:s'$a);
        
$timestamp mktime($date['hour'], $date['minute'], $date['second'], $date['month'], $date['day'], $date['year']);
        return 
$timestamp;
    }

$algus " 2016-02-03 19:00:00";
$lopp " 2016-02-03 22:00:00";

$aeg time(); //hetke aeg


    

if(toTimestamp($algus) < $aeg and $aeg toTimestamp($lopp)){
    echo
'See on toimiv saade';

    
$delta1 toTimestamp($lopp) - toTimestamp($algus);
    
$delta2 toTimestamp($lopp) - $aeg;
    
$suhe 100 round(100*$delta2/$delta1);

    
$kast 100*5;
    
$kuva 5*$suhe;

    echo 
'<div style="height:20px;width:'.$kast.'px;border: 1px solid #000;"><div style="height:19px;width:'.$kuva.'px;background-color:#cccccc;"></div></div>';

}
RE: kontroll, kas praegu käib
Postitaja: opilane 2016-02-03 23:01:49
super, suur aitäh. see teeb just seda mida vaja, kui talle annan ette aja.

kuid jään ikka ühes kohas hätta.
ma lahendan asja nii, et tekitan while, mis loob kõikidest alagrupidest rea mulle.. selle sama while sisse panen ma omakorda kontrolli tegevuste tabelisse, et kas sellele alagrupile on siin tegevuste tabelis hetkel vaste või ei.

hätta jään ma sellega, et mul oleks vaja kuvada alati tegevuste tabelist välja hetkel pooleli olev tegevus ja kui hetkel pole ühtegi tegevust, siis ütleks kindlasti, et pole tegevust.

kuid ma ei suuda seda välja nuputada, et kuidas arvutada välja see aeg, mille ma peaksin panema tegevuste tabelist selectimisel või kuidas ma peaksin selle lahendama ?
tegevuse tabelis on algus ja lõpp 2016-02-03 19:00:00 formaadis

loodan, et liiga keeruline pole.. mul juba pea nii paks sellest. Suur aitäh eelmisele postitajale!!
RE: kontroll, kas praegu käib mõni saade
Postitaja: opilane 2016-02-04 00:55:05
sain siiski hakkama.. äärmiselt kerge oli tegelikult, kuid millegagi pikalt tegeledes ei saa lõpuks aru enam..

igaljuhul tegevuste tabelist selectimisel panin lihtsalt sisse , et kui algus on väiksem hetkel olevast ajast ja kui lopp on suurem hetkel olevast ajast.

nii kuvab alati igas alamgrupis selle, mis just käib. või keegi targem näeb selles mingit viga ? kui siis õpin hea meelega uut :)
RE: kontroll, kas praegu käib mõni saade
Postitaja: opilane 2016-02-04 03:02:56
igaksjuhuks mainin, kui keegi peaks soovima kunagi seda koodi kasutada, et see pole mobiilisõbralik(responsive)

selleks, et see riba oleks responsive, tuleks panna pealmisele divile 100% width ja teisele kastile arvutada width niimoodi


PHP kood:
 
$completed 
= (($aeg toTimestamp($algus)) / (toTimestamp($lopp) - toTimestamp($algus))) * 100;


niimoodi on see responsive.

veelkord tänud postitajale, viisid mu mõtted õigesse suunda ja praeguseks on täpselt selline asi valmis, nagu vaja oli :)!
RE: kontroll, kas praegu käib mõni saade
Postitaja: ghj 2016-02-05 15:30:56
TSITEERITUD:
igaksjuhuks mainin, kui keegi peaks soovima kunagi seda koodi kasutada, et see pole mobiilisõbralik(responsive)

selleks, et see riba oleks responsive, tuleks panna pealmisele divile 100% width ja teisele kastile arvutada width niimoodi


PHP kood:
 
$completed 
= (($aeg toTimestamp($algus)) / (toTimestamp($lopp) - toTimestamp($algus))) * 100;



100% width ei anna sulle responsive disaini vaid fluid disaini. responsive olemusele saad paremini pihta siit http://www.w3schools.com/css/css_rwd_intro.asp . Julgen arvata et php-s(ehk back endis) hakata arvutama mingeid divide laiuseid on 99% juhtudest vale.
RE: kontroll, kas praegu käib mõni saade
Postitaja: ise php 2016-02-05 19:09:36
TSITEERITUD:

Julgen arvata et php-s(ehk back endis) hakata arvutama mingeid divide laiuseid on 99% juhtudest vale.


Aga, kuidas sa selle graafilise poole siis lahendaks? Teeks vinge pildigeneraatori php s ja genereeriks vastava pildi? Käiks ümber nurga, salvestaks väärtuse kuhugi tabelisse ja huiljem ajax abil loeks selle JS ning genereeriks visuaalse väljundi JS abil?
RE: kontroll, kas praegu käib mõni saade
Postitaja: ghj 2016-02-06 14:21:44
TSITEERITUD:

Aga, kuidas sa selle graafilise poole siis lahendaks? Teeks vinge pildigeneraatori php s ja genereeriks vastava pildi? Käiks ümber nurga, salvestaks väärtuse kuhugi tabelisse ja huiljem ajax abil loeks selle JS ning genereeriks visuaalse väljundi JS abil?


Kliendi poolel ikka lahendaks. Niipalju kui võimalik kasutaja protsessori, mitte serveri protsessori ressurssi kasutades. BE ideaalis teenuspõhine. Kindlasti 1% stsenaariume, kus serveris tuleb kliendi poole tarvis andmeid välja arvutada.
RE: kontroll, kas praegu käib mõni saade
Postitaja: ise php 2016-02-06 17:07:13
Pakud siis välja, et saadaks esmalt need kellaajad kliendi masinasse ja kukuks seal JS abil arvutama ja teostama? Pole sellise lahenduse otstarbekuses küll väga kindel, kuid mine sa tea. Enamus lehti pannakse vist ikkagi serveris kokku ja JS jäägu rohkem sellise anima- kohaliku interaktiivse tegevuse jaoks.
RE: kontroll, kas praegu käib mõni saade
Postitaja: use php 2016-02-06 17:35:10
Kas see peaks serveri jõudlust säästma, palju need paar korrutus tehet ikka raiskavad. Või võta ülessanne, kus oleks vaja võtta mitmest tabelist andmed ja kokku liita, sa ei saada ju tabeli andmeid ükshaaval kliendile, et neid siis seal liitma hakata? Tegelikult ju arvutati välja suhteline protsent käimasoleva saate ajast. See, et ma ta otse style alasse pritsisin ei tohiks kuidagi asjale kahjuks tulla, ennem oleks veider ju see, kui ma nüüd annaks selle esmalt JS muutujasse ja JS abil divi venitaks, kuvaks.
RE: kontroll, kas praegu käib mõni saade
Postitaja: ghj 2016-02-07 12:58:53
TSITEERITUD:
Kas see peaks serveri jõudlust säästma, palju need paar korrutus tehet ikka raiskavad. Või võta ülessanne, kus oleks vaja võtta mitmest tabelist andmed ja kokku liita, sa ei saada ju tabeli andmeid ükshaaval kliendile, et neid siis seal liitma hakata? Tegelikult ju arvutati välja suhteline protsent käimasoleva saate ajast. See, et ma ta otse style alasse pritsisin ei tohiks kuidagi asjale kahjuks tulla, ennem oleks veider ju see, kui ma nüüd annaks selle esmalt JS muutujasse ja JS abil divi venitaks, kuvaks.


Mu kommentaar tekitas nüüd natuke "paksu verd". Ma ei tõmba vett pakutud lahenduse peale - see sobib väga hästi lähteülesandega.

Astuks lihtsalt paar sammu tagasi ja võtaks selle lähteülesande luubi alla.

Meil on andmebaasi server, kus on talletatud saatekavade info, meil on veebiserver ja mingi klient, kus kasutaja näeb infot söödaval kujul.

Kindlasti sõltub lahendus kontekstist, kas kellegi mikro veebileht või mõne, nt starmani, saatekavade info - ehk eelarve.

Ma ise php poole peal, kui vähegi võimalik, disainiks JSON outputi, mille struktuur sisaldab andmeid tabelist kui juurde arvutatud andmeid ja saadaks selle kliendi poole teele. Disainiga tegeleks kliendi poole peal, sel juhul klient võib olla veebilehitseja, aga ka midagi muud nt androidi äpp. Kirss tordil on, et mu veebiserveri kood ja output muutub lihtsalt (automaat)testitavaks, samuti ei pea ma tegelema mitte mingil hetkel veebiserveris cross browser jamadega.

Veelkord eelpool pakutud lahendus on õige, lihtsalt mitte ainuke võimalikest lähenemistest.

Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.101552009583