Autor Zpráva
Casero
Profil
Dobrý večer,
už delší dobu se trápím. Prvně jsem zjistil, že asi jen u me funkce nemůže mít mezi parametry pole.:D...A ted mám další problém, můj kod:

function pridejzapas2($liga ,$za, $pol, $po, $kolo)
{
$GLOBALS["datum"]=$GLOBALS["datum"]+60*30;
$vysledek=mysql_query("insert into....
}

$datum=mktime(17, 30, 0 , $mesic, 3, date("Y")); // datum se blíží skoro současnému
for ($i=0; $i<=5; $i++){
pridejzapas2($liga, $zaznam11["sezona"], 1+$i, 12-$i, 1);
}

ale výsledkem není..jak jsem čekal, stále o pul hodiny narůstající čas od toho datumu zadaného funkci mktime, ale zvedá se o pul hodiny od roku 1970...tzn...že se vynuluje, ale proč??..a jak to udělat, tak jak jsem psal??..prosím o radu
Peca
Profil
Nemělo by to být $_GLOBALS s podtržítkem?
Casero
Profil
Peca
No čerpal jsem z manuálu a tam to bylo bez, ale zkoušel jsem to i s a nepomohlo...Ještě to radši zkusím jednou...dík
Peca
Profil
Beru zpět. Je to blbost. Podtržítko tam být nemá. Google najde všechno, i s podtržítkem :-)
Asi plácnu další blbost. Možná záleží na nastavení register_globals.
Po staru se globální proměnné zpřístupňují pomocí global $promenna;
function pridejzapas2($liga ,$za, $pol, $po, $kolo)
{
global $datum;
$datum=$datum+60*30;
$vysledek=mysql_query("insert into....
}
Casero
Profil
Nic. Prostě ty 2 proměné spolu vůbec nesouvisý. Obě si drží své hodnoty.
Casero
Profil
Peca
Ne, to jsem zkoušel prvně a naprosto stejný výsledek. Už jsem kód naprosto ořezal jen na to, co je tu.

function pridejzapas2()
{
global $datum;
$datum=$datum+60*30;
}
$datum=mktime(17,30,0,date("j",$zaznam11["zacatek"]),3,date("Y"));
pridejzapas2();

Už se to snad ani moc neliší od příkladu v manuálu. Má to vůbec fungovat tak, že ve funkci se počítá s hodnotou, která byla v proměné venku?
nightfish
Profil
Casero
tento kód

<?php

function pridejzapas2()
{
global $datum;
$datum=$datum+60*30;
}
$datum=mktime(17,30,0,date("j",Time()),3,date("Y"));
echo $datum."<br>";
pridejzapas2();
echo $datum;
?>


mi dává výsledky v pořádku, tzn.

1194107400
1194109200

tzn. rozdíl 1800 = 60 * 30

btw proč by nešlo funkci jako parametr předat pole?
Casero
Profil
nightfish
Za pomoci Peca jsem to vyřešil jinak, ale nepřišel jsem na to, proč mě to nefunguje správně. Právě všem to dává výsledek v pořádku, zatímco mě ne.

No a s tím polem jsem myslel takto:
function pridejzapas ($liga , $zaznam11["sezona"], $po, $pol)
že to nefunguje.
nightfish
Profil
Casero
function pridejzapas ($liga , $zaznam11["sezona"], $po, $pol)
to je pochopitelné, že to nefunguje... v hlavičce funkce budeš mít jenom
function pridejzapas($liga, $zaznam11, $po, $pol)

a když zavoláš pridejzapas($nejakaliga, $nejakepole, $po, $pol), tak v té funkci můžeš přistupovat (třeba) k $zaznam11["sezona"]

Právě všem to dává výsledek v pořádku, zatímco mě ne.
hmm, tak to opravdu netuším
Casero
Profil
nightfish
ano, vím, byl už jsem poučen ;)

hmm, tak to opravdu netuším
Už je to stejně jedno, jen taková záhada.
Toto téma je uzamčeno. Odpověď nelze zaslat.