Autor Zpráva
php
Profil *
Zdravím,
když dám do funkce poměnnou $mesiv_vznik, tak ji to absolutně ignoruje. Když tam vložím natvrdo číslo např. 6, tak to funguje, ale ne když ho vkladám přes tu proměnnou. Nechápu čím to je. Děkuji

$mesic_final=cesky_mesic($mesic_vznik);
Alphard
Profil
Předejte ji jako parametr, nebo definujte jako globální (to je ale nehezké). Pro více informací hledejte "viditelnost proměnných".
php
Profil *
Vyzkoušel jsem to jak přes parametr, tak tu globální, ale asi to zapisuju špatně. Můžete mi napsat konkrétní příklad. Děkuji
Alphard
Profil
php:
Ukažte, jak to děláte. Opravíme to.
php
Profil *
$mesic_final=cesky_mesic($GLOBALS["mesic_vznik"]);

Moderátor Alphard: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
Nox
Profil
Nevím jestli úplně dobře chápu dotaz, mohl bys sem dát větší části skriptu?
(definici funkce a to kde vzniká $mesic_vznik)
php
Profil *
  $fpd=$zaznam["uvazek"] * $pracovni_dny;
  $rok_vznik=substr($zaznam["vznik"], 2, 2);
  $mesic_vznik=substr($zaznam["vznik"], 5, 2);
  $den_vznik=substr($zaznam["vznik"], 8, 2);
  $mesic_vznik=cesky_mesic($GLOBALS["mesic_vznik"]);
  $datum_vznik=$mesic_vznik."".$rok_vznik;
  if($datum_vznik==$mesic_vyber){
  $fpd=$fpd-$den_vznik+1;
  }
nightfish
Profil
php:
a ta funkce cesky_mesic?

btw řádek 5 stačí jen
$mesic_vznik = cesky_mesic($mesic_vznik);
Nox
Profil
php:
použití globals nebo tak, aspoň v tomhle případě na tomto místě nemá smysl, to můžeš nechat původně

ještě si sem nedal definici funkce

každopádně jestli při zadání "6" je to ok a při $mesic_vznik ne, tak bude problém v obsahu proměnné (nemá ho už předtím), asi

použij var_dump($mesic_vznik) před voláním funkce a na začátku funkce... pokud bude oboje ok, pak bude asi chyba v použití té proměnné
Alphard
Profil
php:
Jestli ten váš kód nemá 500 řádků, tak stiskněte Ctrl + A, pak Ctrl + C a tady na diskusi Ctrl + V. Já smažu, co není potřeba, bude to rychlejší :-)
php
Profil *
pořád to nejde, proměnná je dobře nastavená, zkoušel jsem si ji vypsat a hodnotu 6 to vyhodí
php
Profil *
kód je bohužel dlouhý, ale zkusil jsem nastavit natvrdo, že $mesic_vznik="6"; a jede to zajímavé
nightfish
Profil
php:
kód je bohužel dlouhý
tak ještě jednou, snad už naposledy
pošli sem kód funkce cesky_mesic
php
Profil *
function cesky_mesic($mesic) {
    static $nazvy = array(1 => 'leden', 'únor', 'březen', 'duben', 'kveten', 'cerven', 'cervenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec');
    return $nazvy[$mesic];
}
Alphard
Profil
php:
Pro static nevidím důvod, ale jinak je to správně.
Chyba tedy musí být v
$mesic_vznik=substr($zaznam["vznik"], 5, 2);
Dejte tam echo $mesic_vznik; a zkontrolujte to.
Radek9
Profil
php:
Zkus tohle:
function cesky_mesic($mesic) {
    static $nazvy = array(1 => 'leden', 'únor', 'březen', 'duben', 'kveten', 'cerven', 'cervenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec');
    return $nazvy[(int)$mesic];
}
Taps
Profil
php:
ještě mě napadlo že by problém mohl být dvoumístný zápis čísel v
 $mesic_vznik=substr($zaznam["vznik"], 5, 2);
. Pokud máš leden jako 01 atd. tak funkce cesky_mesic to nevezme
Radek9
Profil
Taps:
To napadlo i mě, řeší to mnou zaslaná úprava. ;-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0