Diskuze: Cykly while, for, do - Počítadlo
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 10 zpráv z 10.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Medzi cyklami while a for nie je veľký rozdiel (ak nehľadíme na formu). Obidvoma vieme dosiahnuť rovnaký výsledok:
for($i = 0; $i < $pocet; $i++) {
echo $i;
}
$i = 0;
while($i < $pocet) {
echo $i;
$i++;
}
Údaje o rýchlosti nepoznám, ale myslím, že while je rýchlejší, kvôli jednoduchšej forme.
Ak chceš dosiahnuť, aby užívateľ z tvojej stránky neodosla viac ako 1 e-mail (antispam), ôžeš použiť $_SESSION. Avšak, neviem, či by šlo pomocou $_SESSION dosiahnuť výsledku, ak som sa netrafil.
V každom prípade, určite ti pomôže JavaScript. Výsledok môžeš vypísať, ak bude medzi stlačením nejaký dlhší časový interval.
Děkuji za vysvětlení, nebo aspoň za tvůj pohled a názor k těmto cyklum.
Každopádně rád bych zůstal zatím 100% u jazyka PHP mám v plánu později zahrnout i JavaScripty, ale zatím nechci obcházet mojí neznalost něčím dalším a rád bych si i nejprve byl jistý jestli to na konec dělám dobře.
Zatím to stále tedy vypadá, že pomocí while, for a klasický proměnný neudělám cyklus, aby si php pamatovalo počet opakování. Protože script se ukončí jakmile while a for bude pravdivý/splněný.
Páči sa mi tvoj prístup
Ono, to ale asi v PHP nepôjde.
JavaScript neovládam, ale viem, že počítať kliky v ňom určite pôjde. Nejaký okoloidúci ti určite poradí.
Budu rád, když se mi logika na konec potvrdí, že tímhle způsob to opravdu nejde. Nejde ani o to jestli je to vhodné, nebo nevhodné. Jen jestli opravdu "MUSÍM" hledat cestu jinou.
s tym, ze PHP po dobehnuti celeho skriptu zobrazi vysledok a sa ukonci a tym vsetko zabudne mas pravdu, ale teoreticky by sa to dalo riesit aj pomocou skryteho <input> tagu v HTML, kde sa ulozi pri generovani HTML kodu obsah premennej a v PHP sa znovu ulozi do danej premennej obsah toho tagu a tato hodnota sa vezme ako pociatocna
Bezstavovost protokolu HTTP obejdeš jedině tím, že si tu hodnotu někam uložíš. Kam ji uložíš, je už tvoje volba.(URL, DB, soubor, session, cookie, hidden input apod.).
Nevěděl jsem že mohu akceptovat jenom jedno řešení
Každopádně takhle mi to stačí, děkuji moc za velice fajn odpovědi.
OT:
Včera jsem přišel na docela podstatný rozdíl for a while ve vytváření násobilky např. Nějak nevím jak bych toto s cyklem for udělal. Neříkám, že by to zatím nešlo, ale asi by to vypadalo dost divně. O kalkulačku se zde podělím, myslím že se mi docela povedla s maximální jednoduchostí díky funkci explode() a uvedu i script kvůli názorům co by šlo udělat jinak a lépe.
100% PHP
http://test.elyz.cz/…zy/calc1.php
do inputu napíšu 10 x 10
.....
$calc_num = explode(" ","$text");
// Násobilka !!
if ($calc_num[1] == 'x'){
$calc_num[3] = $calc_num[0] * 10;
while($calc_num[0] <= $calc_num[3]){
$poradi++;
echo "$calc_num[0], ";
$calc_num[0] += $calc_num[2];
}
}
Šlo by to nejako takto:
<?php
$pocetriadkov = 10;
$pocetstlpcov = 10;
echo "<table>";
for ($i = 1; $i <= $pocetriadkov; $i++) {
echo "<tr>";
for ($j = 1; $j <= $pocetstlpcov; $j++) {
echo "<td>".($i*$j)."</td>";
}
echo "</tr>";
}
echo "</table>";
?>
Tohle není až tak úplně co dělá můj while. Každopádně jsem se
inspiroval $i*$j. Takže i za pomocí cyklu for jsem udělal to samé. Kvůli
jednoduchosti, jsem uvedl fixní hodnoty. Násobilka 5 a maximálně do 50.
Děkuji
for ($b = 5; $b <= 50; $b += 5){
echo "$b, ";
};
Na základě čeho vzniklo toto vlákno a výše uvedených rad/nápověd jsem dal do kupy počítadlo za pomocí neviditelného input.
<?php
if (isset($_POST['text'])){
$pocet = $_POST['pocet'] + 1;
}
echo $pocet;
?>
<form action="#" method="post">
<input type="text" name="text">
<input type="hidden" name="pocet" value="<?php echo "$pocet"; ?>" >
<input type="submit" value="odeslat">
Děkuji všem za pomoc a toto celé beru již za vyřešené. Mnoho jsem se tím naučil.
Zobrazeno 10 zpráv z 10.