[ milosns021 @ 08.06.2010. 17:50 ] @
Imam jedno pitanje,a ono glasi:Mogu li na ovu skriptu(dole navedenu) da dodalam da se naredba ponavlja vise puta po izboru korisnika,da li ce oni to rucno uneti ili cu dodati padajuci meni koji kada se izabere broj ponavljanja odraditi posao nije mi vazno!Bitno mi je samo da korisnik pre negosto klikne na "Izvrsi aktivnost" ima mogucnost da izabere koliko zeli da se ta aktivnost koja je izabrana ponovi od 1 do max 200 puta. Unapred hvala!

Code:
<?php
include('header.php');
include('magicfun.php');

?>
<br>
<table style="width:90%">
  <tr>
    <th colspan="3"> <table border="0" width="100%" cellspacing="0" cellpadding="0" height="31">
        <tr>
          <td width="138"><img border="0" src="slike/levozaglavlje.gif" width="138" height="31"></td>
          <td style="text-align: center" align="center" background="slike/pozadinazaglavlje.gif"><b><font size="2" color="#000000">DRZAVNE AKTIVNOSTI</font></b></td>
          <td width="138"><img border="0" src="slike/desnozaglavlje.gif" width="138" height="31"></td>
        </tr>
      </table>
  </tr>
</table>
<br>
<a href="<?=$config['main']?>?action=guide&amp;section=magic&amp;era=<?=$users['era']?>">Uputstvo: Drzavne aktivnosti</a><br>
<form method="post" action="<?=$config['main']?>?action=magic">
<table class="inputtable">
<tr><td><select name="spell_num" size="1">
<option value="0">Izaberi aktivnost</option>
<?
for ($i = 1; $i <= 13; $i++)
    if (($sptype[$i] == 'd') && ($spname[$i]))
        printMRow($i);
?>
        </select></td></tr>
        
<tr><td class="acenter"><input type="submit" name="do_spell" value="Izvrsi aktivnost"></td></tr>
</table>
</form>
<?
if ($users['shield'] > $time)
    print "<i>Kontraobavestajna sluzba aktivna jos ".round(($users['shield']-$time)/3600,1)." sati.</i><br>\n";
if ($users['gate'] > $time)
    print "<i>Vremenska kapija je otvorena jos ".round(($users['gate']-$time)/3600,1)." sati.</i><br>\n";
TheEnd('');
?>
[ kazil @ 13.06.2010. 12:52 ] @
Moze. Iz ove sume koda ja licno ne vidim koja naredba treba da se ponovi vise puta, te dajem neki pseudo kod.

Code:

$numberOfActions = 1;

$numberOfActions = $_POST['num_of_actions'];

while($numberOfActions > 0) {
    doTheAction();
    $numberOfActions--;
}


Prosto i jednostavno - dokle kod ima da se radi, neka radi. Provere tipa, da li je uneo validan broj akcija, da li korisnik sme da izvrsi toliki broj akcija, to je vec na tebi.

Posebnu paznju obrati na max_execution_time direktivu na serveru, najcesce (po default-u) je podesena na 30 sekundi. Akcije koje se izvrsavaju ne znam koliko ce biti zahtevne, tako da ako ne mozes sam na serveru menjati max_execution_time, onda ces morati menjati maximalni broj dozvoljenih akcija. Ovako da lupim pa da prezivim, ja bih licno ciljao da maximalni broj akcija uzme 20 sekundi, da mi 10 sekundi ostane cisto za worst case scenario.