Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Lopuch, server nejen
pro botaniky

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Klub PHP [ŽP: neomezená] (kategorie Programování) moderuje makovec.
Archiv
Diskuse o vybornem skriptovacim jazyku php. Dulezite odkazy, pred polozenim dotazu zkuste hledat odpoved zde:
  1. www.php.net - domovská stránka PHP
  2. www.kosek.cz - spousta tutorialu pro PHP v češtině
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
 Titulek, text příspěvku  
Opište pozpátku následující text bez prostředního znaku: wpaydzc
[ 1845 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 23.4.2012 14:59  3233
at funguje v linuxu
urcite bude lepsi si udelat vlastni univerzalni cron-skript kterej to bude resit sam. jednou za minutu ho pousteby nemel bejt problem, pokud to bude na serveru. problem by to asi byl pro nejakej hodne slabej HW ale mobilni zarizeni ci staleta zalezitost.
bredy 23.4.2012 12:22  3232
vibsoftMám pocit, že tam něco takového je. Ale když není, tak si to asi napíšu. To zpoždění takto realizovat nechci, protože těch plánovaných akcí se může sejít víc. Dokonce se bojím, že atnebude až tak vhodný, takže si to nakonec napíšu, protože by to chtělo, aby se ty požadavky nějak groupovali v případě, že se jich sejde víc. Ten čas není až tak kritický, a odchylka půl minuty je dostatečná, takže zgroupování update na čas 3:05 a 3:10 do jednoho požadavku ideální.

Jen jsem se chtěl zeptat, jestli není nějaký standardnější postup, abych nevymýšlel kolo.
vitsoft vitsoft Pryč se zrůdnou obrazotvorností mládeže! - about.me 21.4.2012 13:34  3231
at existuje i v Linuxu? Ve Windows je to jen submitér džobů do cronu (kterému Microsoft říká Scheduler).
Ještě je možnost spouštět zpožděné akce tak, že se aktuální thread uspí, ale neukončí (takže přitom bohužel zabírá paměť webserveru):

set_time_limit(60*$zpožděníMinut);
sleep(60*$zpožděníMinut);
ProveďAkci();
bredy 20.4.2012 13:15  3230
huh at by možná šel.
huh huh 19.4.2012 13:05  3229
že by se to nějak jmenovalo, o tom nic nevím
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 19.4.2012 12:18 - Oblíbené kluby (15:54) 3228
hezký elegantní řešení

i pro mě pochopitelný (teď když to vidím napsané)
:-)
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 19.4.2012 12:11 - Oblíbené kluby (15:54) 3227
super!huh [3226]:
chápeš to naprosto skvěle
otestoval jsem s tím různé rozměry a šlo to vždy tak jak bylo zadání.

Jmenuje se tento úkol (řešení) nějak? Česky či anglicky?
huh huh 19.4.2012 11:40  3226
puschpull [3221]: nevím, jestli to chápu správně, ale třeba:
<?php
$P = 24;
$k = 8;
$vysl = array('a','b','c','d','e','f','g','h','i','j','k','l','m');
$t = '<table border=1>';
$length = count($vysl);
$poli = max($P, $k); 
for ($i = 0; $i < $poli; $i += $k) {
   $t .= '<tr>';
   for ($j = $i; $j < $i + $k; ++$j) {
      if ($j < $length) {
         $field = $vysl[$j];
      } else {
         $field = '&nbsp;';
      }
      $t .= '<td>'.$field.'</td>';
   }
   $t .= '</tr>';
}
$t .= '</table>';
echo $t;
?>

puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 19.4.2012 11:32 - Oblíbené kluby (15:54) 3225
knedle [3223]:
dík
večer zkusím
:)
huh huh 19.4.2012 11:28  3224
Bredy [3217]: a co příkaz
at

knedle knedle online - Krabice živých 19.4.2012 10:01  3223
- nejdrive vypis vsechny data - cyklus A
- protoze vis, kolik jich je/bylo, zjisti, kolik ti zbyva do P // nebo pokud je pocet vetsi mez P, jen dopocitej, koilk ti zbyva bunek - cyklus B
- pro radkovani (tr - /tr) budes cekovat pocitadlo $i / kdy $i = 0 echo TR, $i = N echo /TR a vynuluj $i
-- tohle udelat v obou cyklech
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 19.4.2012 09:49 - Oblíbené kluby (15:54) 3221
logický oříšekvčera večer jsem si zkoušel tuto úlohu:

Máme xy prvků v poli
prvky máme vykresit do obecné tabulky
N... počet sloupců
P... počet polí celé tabulky

Tabulku vždy dopočítat a prázdná pole doplnit, aby tabulka byla vykreslená celá

Trochu jsem to řešil kostrbatě, pomocí cyklů for a podmínek if/else
Došel jsem k řešení které funguje dobře pro mou potřebu, ale asi není naprosto univerzání na jakýkoliv rozměr tabulky


<?php
$page_set = 24; // počet záznamů na stránku - vybrat číslo dělitelné počtem sloupců !!

$t = '<table border=1>';
$i = 0;
$k = 8; // počet sloupců v tabulce galerie

$vysl = array('a','b','c','d','e','f','g','h','i','j','k','l','m'); // jakékoliv pole s X prvky


// cyklus vykreslí tabulky dle počtu prvků v poli $vysl
//******************************************************
while (list($field) = each($vysl)) {
$j = $i % $k; // binarni nasobeni $k (3)
if ($j==0) {$t .= '<tr>';}
$t.='<td>'.$field.'</td>';
if ($j==$k) {$t .= '</tr>';}
$i++; }


//vypočet pomocných proměnných
//*****************************************
$ik = $i % $k;
$ir = ceil(($i / $page_set)*($k-1));
$b = floor(($page_set - $i) / $k);
$c = $page_set / $k;
$d1 = ($page_set / $c)*1;
$d2 = ($page_set / $c)*2;
$d3 = ($page_set / $c)*3;
$d4 = ($page_set / $c)*4;


//dopočítání vykreslení tabulky tak aby žádné zbývající pole nebylo prázdné
//************************************************************************
if ($i <> 0){
if ($i < $page_set){
if (($i <> $d1) and ($i <> $d2) and ($i <> $d3) and ($i <> $d4)){
for ($w=($ik+1); $w<=$k; $w++) {$t.='<td>O</td>';}}
$t .= '</tr>';

if ($ir <= $c){
for ($s = 1; $s <= $b; $s++) {
for ($ww=1; $ww<=$k; $ww++) {$t.='<td>X</td>';}
$t .= '</tr>'; } }

else {
for ($s = 1; $s <= $b; $s++) {
for ($ww=1; $ww<=$k; $ww++) {$t.='<td>H</td>';}
$t .= '</tr>'; } }
} }

else {
for ($s = 1; $s <= $b; $s++) {
for ($ww=1; $ww<=$k; $ww++) {$t.='<td>H</td>';}
$t .= '</tr>'; } }

// uzavření tabulky
//*********************
$t .= '</table>';
echo $t;
?>



Zajímalo by mě jak se tato úoha řeší sofistikovaně (jistě je toto obecnější úloha, která je čas od času potřebná při vykreslování neúplných tabulek).
Případně nějaký odkaz na možná řešení tohoto problému.

Doufám, že jste uvítali to, že jsem s tím večer neotravoval, ale poctivě jsem se to snažil řešit bez googlování po scriptech.
...
No, výsledek tomu asi odpovídá, mě se to moje řešení taky moc nelíbí, ale funguje pro skoro všechna zadání ...
:-)

Děkuji předem za trpělivost
knedle knedle online - Krabice živých 19.4.2012 08:36  3220
tak zrus data v db, a ukladej do souboru, kterej pak smazes - tak ci tak budes muset mit cron na spusteni/kontrolu

jsou vlastně jine moznosti spusteni skriptu nez pres
- akci v browseru
- cron

?
bredy 19.4.2012 07:20  3217
huhTak s cronem jsem si hrál, ale co já vím, jediné co umím je ho nastavit tak, aby se spouštěl jen v určitých časech. Mě by se líbilo, kdyby to opravdu mohl "naplánovat", protože někdy to může být za pár sekund, jindy za 10 minut.

I když teď tam mám plánovací rozlišení v minutách, spouštět skript a vytěžovat databázi jednou za minutu se mi nechce.

PS: při přístupu (ne přes web, jde o backend, nabízející JSONRPC rozhraní) to mám udělaný teď. Je to pakárna, to máš pravdu. Nejlepší je, když si něco naplánuju za 3 minuty a další request přijde za 10 minut.
huh huh 18.4.2012 20:57  3216
Tak normálně cronem, ne? Buď přímo nastavit konkrétně, nebo nechat cron pravidelně volat nějaký plánovací skript, ten se koukne, jestli a co má udělat a udělá to (zavolá výkonný skript). Není-li cron, ale je-li do přístupů přes web, lze ten plánovací skript volat prostě při přístupu na web. (ale to je pakárna)

[ 1845 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt