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

Náš Lopuch Vám
vytře zrak

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: hdcllsv
[ 1845 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 19.4.2012 13:18  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 13:11  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 12: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 12:32  3225
knedle [3223]:
dík
večer zkusím
:)
huh huh 19.4.2012 12:28  3224
Bredy [3217]: a co příkaz
at

knedle knedle online - Krabice živých 19.4.2012 11: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 10:49  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 09: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 08: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 21: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)
bredy 18.4.2012 21:46  3215
PlánovačNapadá někoho, jak by se dal v PHP ve spolupráci se serverem nebo s nějakou externí komponentou realizovat plánovač akce. Typicky neco ve stylu "proveď určitou akci 5 minut od teď"
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 18.4.2012 19:51  3214
solved:-)
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 18.4.2012 17:42  3213
ještě dotazPokud chci uložit HTML kód jako řetězec do proměnné a pak ji použít později k výpisu dat

konkrétně:

$pokus2 = '&nbsp;<a href='.$val->get('path_large').' class="little" onclick="return ....... 2px solid; " /></a>&nbsp;<br />';


jak ošetřit některé znaky jako $val->get, uvozovky atd..

z escape sekvencí nějak tápu,
PHP - Escape sekvence
??


zkoušel jsem zpětná lomítka, či místo > napsat entitu, ale n2jak to nefunguje
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 18.4.2012 10:53  3212
themajkl [3209]:
děkuji
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 18.4.2012 10:53  3211
jsem si neuvědomil že tam mám nerovnost a že ten původní výraz byl logický nesmysl
omlouvám se

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

(c) 2001-2011 Lopuch.cz   
Kontakt