Autor Zpráva
Valach
Profil *
Ahoj
snažím se vypsat data z pole ale vůbec mi to nejde, všude spousta návodů přes while, for atd.. ale všechno je to jen když znám přesný počet cyklů.
Neporadíte někdo jak vypsat všechny data z pole bez zbytečního zatížení serveru? Děkuji

$pole = array('aaa', 'bbbb', 'ccc', 'ddd');

for ($i = 1; $pole == false; $i++){
echo($pole[$i]);
}
Tori
Profil
foreach
Zechy
Profil
Nech to vypsat přes foreach
Valach
Profil *
Tak jsem to zkusil ale nějak to hapruje...

tohle funguje, vypis bude abcd

          $a = array('a','b','c','d');

          foreach ($a as $value) {
          echo $value;
          }



tohle nefunguje, vypis je jen abc

          $a = array('a','b','c','d');

          $last = array_pop($a);

          foreach ($a as $value) {
          echo $value;
          }


nevíte proč?
laijk
Profil
funkcia array_pop vystrihne poslednú hodnotu aj keby to bolo zapísané takto:
 $a = array('a','b','c','d');

          array_pop($a);

          foreach ($a as $value) {
          echo $value;
          }

-čiže keď tam bude hocijako zapísaná vždy to vypíše len abc
Valach
Profil *
laijk:
a neexistuje nejaká funkce, která jen zjistí poslední hodnotu v poli? Nebo počet hodnot v poli by možná taky stačil... Díky
laijk
Profil
tak na zistenie počtu hodnôt v poli to bude count($a) a potom si už lahko zistíš poslednú hodnotu.
Valach
Profil *
laijk:
tak na zistenie počtu hodnôt v poli to bude count($a) a potom si už lahko zistíš poslednú hodnotu.


JJ, díky, to je už jednoduché na oštření, jen kdyby člověk znal ty názvy funkcí...

BTW: když mám to pole
array('a','b','c','d');


jak jednoduše přidám další hodnotu třeba e aby výsledek byl

array('a','b','c','d','e');


Díky
Tori
Profil
Stejně, jako se z pole čte
echo $pole['index'];
echo $pole[2];
se do něj i píše.
$pole['index'] = 'hodnota';
$pole[2] = 'hodnota';
$pole[] = 'hodnota'; // Uloží se pod první volný číselný index.
Valach
Profil *
Tori:
Ale koukám, že to není pro všechno stejný..

třeba do cookies vůbc neuložím data do pole :(

zkoušel jsem

          setcookie('aaa', $get_id, time()+3600);  /* expire in 1 hour */
          $_COOKIE['aaa'][] = $get_id
;

ale data se jen přepisují, nepřidávají se.. tak fakt nevím. Proč php neumí ukládat v cookie do array?

Díky
Alphard
Profil
serialize()

Pozn. viz [#13]
Valach
Profil *
Alphard:
Nějak nechápu co ta funkce má dělat :(
Alphard
Profil
Když potřebujete ukládat pole, tak ho jednoduše serializujete do řetězce, který lze uložit do cookies. Pak získáte inverzní funkcí původní pole.

Další možnost viz http://php.net/manual/en/function.setcookie.php example 3, ale spíš bych zůstal u jedné cookie.

Je tam i poznámka "Consider explode() to set one cookie with multiple names and values. It is not recommended to use serialize() for this purpose, because it can result in security holes.", ale já bych se toho zas tolik nebál, třeba by stačilo json_encode(), nevím, v čem přesně je ta díra.
Valach
Profil *
Alphard:
Hm, já mám problém úplně někde jinde... :((

Jsem na stránce http://www/ahoj/ na ktere zaregistruji cookie a dam vypsat a vse ok, ale když přejdu na jinou stránku cookie tam nejsou, prostě jsou fuč


          setcookie("cookie[three]", "cookiethree");
          setcookie("cookie[two]", "cookietwo");
          setcookie("cookie[one]", "cookieone");


proč? co dělám blbě? DíkY
Stano
Profil
na vypísanie poslednej hodnoty z poľa je funkcia end() na pridanie na koniec poľa je funkcia array_push()

s cookies ti Bohužiaľ neporadím.
Alphard
Profil
Valach:
Hm, já mám problém úplně někde jinde... :((
Ono také není jednoduché se ve vašem popisu vyznat, např. [#10] vyznívá, jako problém s array v cookies.

ale když přejdu na jinou stránku cookie tam nejsou, prostě jsou fuč
Na jakou stránku, a když se vrátí na tu původní, jsou k dispozici? Možná donastavit zbývající parametry. Podívejte se v prohlížeči, jestli cookies existují nebo ne.
Valach
Profil *
Alphard:
Na jakou stránku, a když se vrátí na tu původní, jsou k dispozici? Možná donastavit zbývající parametry. Podívejte se v prohlížeči, jestli cookies existují nebo ne.
Na kterou koliv stránku příjdu ,tak cookie nevidím, dokonce i když se vrátím na tu ve ktere jsem cookie ulozil tak tam taky nejsou. V prohlížeči ale fyzicky uloženy jsou..

když dám doplňující parametry

setcookie ("TestCookie", "", time() - 3600, "/", ".mojedomena.cz", 1);


tak se cookie neuloží ani fyzicky neexistujou v prohlížeči.
Tori
Profil
Valach:
Ad [#17]: Jednak nastavujete, aby platnost cookie skončila před hodinou (což se používá na smazání cookie, nikoli její nastavení), druhak chcete aby se poslala do prohlížeče pouze v případě, že bude připojený přes https:// (6.parametr). Nemůžete mít třeba na jedné stránce nastavení cookie a na jiné zas smazání (nebo přepsání pole $_COOKIE), že by kvůli tomu nebyly cookies čitelné ve skriptu?

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