Autor Zpráva
Yperetes
Profil *
Omlovám se, ale potřeboval bych poradit ještě s jednou věcí.
Potřebuji zapsat takovýto php skript:
Mám proměnné $a; $b --> Potřebuji aby skript odečítal $b od $a tak dlouho dokud nebude platit $a<$b (tedy pravděpodobně bude potřeba nějaký cyklus) a poté mi to vypsalo tuto hodnotu ($a). Samozřejmě pokud bude podmínka splněná hned na začátku, budu chtít aby mi to tuto hodnotu ($a) vypsalo rovnou na začátek a cyklus probíhat nebude. Jelikož ale nemám zkušenosti s cykly, potřeboval bych od někoho poradit.
Předem děkuji za odpověd
Laman
Profil
<?
while($a>=$b){$a-=$b;}
echo($a);
?>


možná ještě ifem zkontrolovat, že $b je kladné, aby cyklus někdy skončil...
Yperetes
Profil *
Díky, jen jsem nevěděl, jak to zapsat do cyklu a ono je to tak jednoduché :-)
Tori
Profil
Yperetes:
Pokud vám jde jen o to odečítání a během cyklu nic jiného neděláte, stačí použít modulo:
$a = ($a < $b ? $a : $a % $b);
(Netuším, jak PHP interně počítá modulo, jestli taky nepoužije cyklus jako v [#2] - pak by to asi vyšlo nastejno.)
Yperetes
Profil *
Ano, jde mi pouze o to odečítání do té doby, dokud není splněna podmínka, pro kterou se následně vypíše výsledek. A ještě jsem se chtěl zeptat, u PhP skriptu asi nejsou vyskakovací okna že? (jako např. v javaskriptu, aby třeba po nesplněné podmínce vyskočilo okno s chybovým hlášením a nápovědou co a jak). Popř. jestli tyto dva skripty nejde nějak zkombinovat.
panther
Profil
Yperetes:
Popř. jestli tyto dva skripty nejde nějak zkombinovat.
jdou. Proč by nešly? Vyzkoušet si to můžeš na nejjednodušším příkladě.

<?php
if (1 != 2) {
?>
<script>alert ('chyba');</script>
<?php
}
?>
Yperetes
Profil *
Musí to být napsné přesně takto (aby tam byl ten zapis php dvakrát a ty složené závorky mezi ním)? Podmínku mám ($b < 1) a skript mi vyskakuje pokaždé. K tomu nevím úplně přesně, jak do toho navíc zakomponovat ten první kód:
<?php
while($a>=$b){$a-=$b;}
echo($a);
?>
Yperetes
Profil *
Už se mi to podařilo zakomponovat. Ještě bych měl tedy poslední otázku k tomuto tématu. A to jestli je možné (možné je to asi určitě, spíš mě zajímá zápis kódu), aby v případě nesplněné podmínky a vyskočení chybového hlášení nepokračovala stránka v provádění další operace (v tomto případě cyklu), ale po odkliknutí OK ve vyskočivším okně se vše opět vrátilo na stránku s formulářem.
Tori
Profil
Yperetes:
v případě nesplněné podmínky a vyskočení chybového hlášení
To myslíte tu podmínku $b < 1 ? Takhle to nefunguje - PHP skript se provede na serveru, k uživateli přijde jen jeho výsledek. A teprve v prohlížeči se začne zpracovávat JavaScript (a vyskočí hláška).
V PHP nastavíte, aby po nesplnění podmínky už skript nedělal nic dalšího. Přesměrovat pak můžete a) ještě v PHP (funkce header), b) v JS po odkliknutí hlášky (window.location), anebo c) formulář i jeho zpracování dát do jednoho PHP skriptu, který zobrazí buď chybu nebo výsledek.
Yperetes
Profil *
Ano, jedná se o podmínku $b < 1 . Trochu jsem to tušil, že to nepůjde tak, jak jsem chtěl. To přesměrování dám asi do JS. A ono bych to ani nemusel nastavovat v PHP, aby se nic nedělalo, ne? Jelikož se buď za a) podmínka nebude porušena (neproběhne JS) a PHP mi vypíše co potřebuji a nebo za b) mi vyskočí okno v JS a po odkliknutí se přesměruje, tudíž bude PHP automaticky ukončeno, ne?

Každopádně děkuji za odpověď

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0