vícerozměrná pole

8 příspěvků

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. Zdravím a prosím o radu. Chci vytvořit vícerozměrné pole, jehož prvky chci později vypsat a nevím si s tím rady. Chtěl bych aby pole vypadalo nějak takto: pole(měsíc=>info, info2, info3 ..., únor=> .....) Takto se snažím do pole načíst proměnné a hned ho vyvolat (pozn. měsíc se mění (pozn.: po doběhnutí while se měsíc změní na následující): $podminka2=0; while ($podminka2<18) { $pole[$mesic][$podminka2]="$podminka2"; echo"$pole_vydaje_ostatni_popis[$mesic][$podminka2]"; $podminka2++; } Děkuji Vám
  2. $pole=array('leden' => array('info','info2','info3'), 'únor' => array('info','info2','info3')); viz http://cz2.php.net/manual/en/language.types.array.php
  3. Dekuju za radu, poté se mi podařilo vícerozměrné pole vytvořit a vypsat údaje, které potřebuji. Vypíše to ale jenom ve WHILE, jakmile dám pole jinam, údaje zapomene: while ($vypis=mysql_fetch_array($mysql_prijem_go)) { $pole=array($podminka => array("".$vypis['vydaje_ostatni_popis1'].", ".$vypis['vydaje_ostatni_popis2']."")); echo $pole[0][0]; echo"<br>"; }; $podminka++; } Děkuji
  4. <HTML>Variable scoping? To je někde hned na začátku popisu jazyka PHP, aspoň podle manuálu. A stále mi uniká smysl toho snažení.</HTML>
  5. morca: Problém je spíš to, že výsledkem tvého while (uvedeného) je pouze pole s jedním prvkem (který je obsahuje jeden prvek - string) -- v cyklu while totoiž nezvyšuješ $podminka - až někde za ním. Ten text, který máš v parametru array, totiž nevytvoří 2 prvky, ale jenom jeden. Mimochodem máš tam nějak moc závorek. Upravil bych to takto: while ($vypis=mysql_fetch_array($mysql_prijem_go)) { $pole=array($podminka => array($vypis['vydaje_ostatni_popis1'], $vypis['vydaje_ostatni_popis2'])); $podminka++; } print_r($pole); Druhou možností zapomínání dat/proměnných je jejich deklarace ve funkcích - pokud proměnnou vytvoříš v jedné funkci, tak v ostatních (ani ve zbytku skriptu) se k ní nedostaneš (pokud ji nějakým způsobem nepředáš -- global, nebo jako parametr apod..). Více jak píše Nípal .. variable scope.
  6. omlouvám se, nepřiložil jsem celý kod, napravuji. V odpovědi Nípalov, má představa je taková, že chci uložit náklady za každý měsíc k danému měsíci do pole a tyto náklady později vyvolávat. Pole jak jsem ho napsal obsahuje správně všech 12 měsíců a správně náklady k danému měsíci. To ale pouze ve while (viz. níže). Jakmile je přesunu tam kam chci, data zapomenou. if ($akce=="prijem_vydej") { $mesic_pole=array("leden","unor","brezen","duben","kveten","cerven","cervenec","srpen","zari","rijen","listopad","prosinec"); // příjem výdej - načtení příjmů a výdejů do proměnných $podminka=0; while ($podminka<12) {$mesic=$mesic_pole[$podminka]; $link=mysql_connect($host, $user, $pw) or die; ("NESLO PROVÉST"); $db=mysql_select_db($databaze,$link) or die ("NESLO PROVÉST"); $mysql_prijem="SELECT*FROM stavy WHERE rok_mesic='$rok-$mesic'"; $mysql_prijem_go=mysql_query($mysql_prijem,$link); while ($vypis=mysql_fetch_array($mysql_prijem_go)) { $pole=array($podminka => array("".$vypis['vydaje_ostatni_popis1'].", ".$vypis['vydaje_ostatni_popis2'].", ".$vypis['vydaje_ostatni_popis3'].", ".$vypis['vydaje_ostatni_popis4'].", ".$vypis['vydaje_ostatni_popis5'].", ".$vypis['vydaje_ostatni_popis6'].", ".$vypis['vydaje_ostatni_popis7'].", ".$vypis['vydaje_ostatni_popis8'].", ".$vypis['vydaje_ostatni_popis9'].", ".$vypis['vydaje_ostatni_popis10'].", ".$vypis['vydaje_ostatni_popis11'].", ".$vypis['vydaje_ostatni_popis12'].", ".$vypis['vydaje_ostatni_popis13'].", ".$vypis['vydaje_ostatni_popis14'].", ".$vypis['vydaje_ostatni_popis15'].", ".$vypis['vydaje_ostatni_popis16'].", ".$vypis['vydaje_ostatni_popis17'].", ".$vypis['vydaje_ostatni_popis18']."")); echo $pole[0][0];echo"<br>"; }; $podminka++; } Moc děkuji za pomoc
  7. k databazi se pripojujeme jednou, ne porad dokola $pole zaprve existuje jenom ve while, zadruhe ho v kazde iteraci toho cyklu zahodis a vytvoris znovu dal nechapu, proc to z databaze nevytahnes jednim dotazem a vubec je to cely necitelny, zbytecne slozity a naprosto se z toho neda pochopit, co to ma delat toto $vypis['vydaje_ostatni_popis1'].", .$vypis['vydaje_ostatni_popis2']. vypada, ze je spatne i tabulka v db
  8. Máš to celé zmatené. Doporučil bych ti to udělat celé znova. Vícekrát se připojuješ k db (stačí jednou), šlo by to provést na jeden sql dotaz a rozdělit podle měsíců až v php. V druhém cyklu while nastavuješ pokaždé stejnou proměnnou - tedy ve výsledku v ní zůstane uložený pouze poslední průchod. Pro přidání prvku do pole použij zápis $arr[] nebo array_push($arr,'hodnota');

← Zpět na všechna témata