Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

php korpa i nizovi

[es] :: PHP :: PHP za početnike :: php korpa i nizovi

[ Pregleda: 3205 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

solomonbicakcic

Član broj: 332740
Poruke: 6
178.77.32.*



Profil

icon php korpa i nizovi16.04.2016. u 00:58 - pre 96 meseci
Pozdrav. Malo se igram sa nizovima pokusavajuci da napravim neku malu korpicu pa me zanima slijedece. Nasao sam primjer u knjigi, gdje je ovako uradjena korpa.

Code:

if(isset($_SESSION['korpa'][$produkt])){
    $_SESSION['korpa'][$produkt] += $qty;
}
    else {
        $_SESSION['korpa'][$produkt] = $qty;
    }

Znaci, provjerava se da li postoji u u sesiji produkt sa tim kljucem, ako ima samo se sabere a ako nema, upise se nova kolicina. Eh sada mene zanima, koliko sam skontao, da je ovo dvodimenzionalni niz, i zasto je tako uradjeno i koje su prednosti ovog koda nad ovim sa kojim sam ja uradio

Ovdje je jednodimenzionalni niz sa produktima kao kljucevima, i kolicinama kao vrijednostima. Eh sada me zanima, koje su prednosti ovog koda gore i zasto su autori u knjigi ovako uradili, zar nije jednostavno da se pristupi nizu samo sa pisanjem jednog indexa tj kljuca ?
Code:

if(isset($_SESSION[$produkt])){
    $_SESSION[$produkt] += $qty;
}
    else {
        $_SESSION[$produkt] = $qty;
    }
 
Odgovor na temu

Aleksandar Đokić

Član broj: 13478
Poruke: 4793
*.dynamic.sbb.rs.



+638 Profil

icon Re: php korpa i nizovi16.04.2016. u 02:46 - pre 96 meseci
Imas vise korpi?
 
Odgovor na temu

dusans
Stojanov Dušan
Pančevo

Član broj: 9551
Poruke: 1343
*.dynamic.sbb.rs.



+311 Profil

icon Re: php korpa i nizovi16.04.2016. u 09:26 - pre 96 meseci
To nije pitanje tehničke jednostavnosti već "dizajna" tj. organizacije podataka u sesiji.

Dakle, po knjizi, u sesiji pod ključem 'korpa' čuvaš količine dodatih proizvoda, što je u principu OK.

U tvom rešenju u sesiji čuvaš količine dodatih proizvoda bez da si ih organizovao na bilo koji način,
tako da kada u sesiju budeš stavio neki drugi podatak koji nema veze sa korpom, doći ćeš u situaciju
da si pomešao babe i žabe, što u principu nije OK.

Kao što svoje fajlove organizuješ u više foldera/podfoldera, podatke u bazi podataka organizuješ u više tabela,
tako bi i podatke u sesiji trebao da organizuješ u nešto smisleno a ne da trpaš u isti koš i babe i žabe.
 
Odgovor na temu

solomonbicakcic

Član broj: 332740
Poruke: 6
178.77.32.*



Profil

icon Re: php korpa i nizovi16.04.2016. u 15:11 - pre 96 meseci
Hvala Dušane, otprilike sam tako nešto u glavi imao ali mi je trebao neko da potvrdi. Malo me bunilo jer većina literature gdje se spominje više dimenzioni nizovi tj. dvodimenzionalni baziraju se na primjerima redova i kolona. Sada te pitam vezano za ovo, da li i ovi dvodimenzionalni nizovi imaju primjenu gdje je jedan index konstantan, faktički npr dužina se ne mjenja, a širina da. Uvijek sam radio sa primjerima gdje se kod dvodimenzionalnih nizova automatski povećava i jedno i drugo, npr prilikom isčitavanja iz baze nekih podataka, svaki red isčitan bi bio jedan red i tako bi se povećavao, a kolone bi bili podaci tj polja iz tabele. I pored ovoga, zanima me zašto jednostavno ne mogu da kreiram dvodimenzionalni niz samo
Code:

$_SESSION = array('shopping_cart'=>array('nekiprodukt' => 30));


Npr ovako. Pretpostavljam da je problem jer je $_SESSION niz. Znam da mogu kreirati ovo što hocu na drugaciji način, tj da index niza $_SESSION odmah stavim ovo 'shopping_cart' npr ovako.

Code:


$_SESSION['shopping_cart']=array('nekiprodukt'=>20);


Ali me zanima zašto ne radi ovako kao u prvom primjeru. I da napomenem, istraživao sam malo i array_push i [] skontao sam za šta služe ali ne mogu da provalim zašto ne mogu da ovako dodam automatski u niz ovo što hoću. A npr radi mi kada od varijable napravim niz npr:

Code:

$bla = array('shopping_cart'=>array('nekiprodukt' => 30));



E zanime me zašto ovako ne mogu da dodam u $_SESSIOn niz. Hvala na odgovorima.
 
Odgovor na temu

dusans
Stojanov Dušan
Pančevo

Član broj: 9551
Poruke: 1343
*.dynamic.sbb.rs.



+311 Profil

icon Re: php korpa i nizovi17.04.2016. u 10:34 - pre 96 meseci
Oko dodele vrednosti $_SESSION varijabli...
Da li znaš uopšte šta je sesija, čemu služi i da li ima smisla zameniti
$_SESSION varijablu nekom proizvoljnom vrednošću (ako uopšte i može)?

Drugo, PHP koliko vidim, ne podržava multi-dimensional arrays direktno (niz sa više od jednog indeksa),
već se takvi nizovi (npr. matrica, cube) dobijaju preko niza-nizova (što se u u obično zove jagged array).
Na primer, matricu dobijaš tako što napraviš jedan niz za redove
u čije elemente opet stavljaš nizove jednake dužine koji nose vrednosti po kolonama.

U suštini, za tvoj primer cart-a ti i ne treba nikakva matrica već običan jednodimenzioni niz.
Kada budeš pročitao šta je sesija, reći će ti se samo gde grešiš u logici,
a to je da $_SESSION nije nikakav dvodimenzioni niz per-se već prosto jednodimenzioni
asocijativni niz u kog možeš da trpaš šta god ti je volja, proste vrednosti,
druge nizove, treće nizove-nizova i šta ti već treba.


[Ovu poruku je menjao dusans dana 17.04.2016. u 11:58 GMT+1]
 
Odgovor na temu

solomonbicakcic

Član broj: 332740
Poruke: 6
178.77.52.*



Profil

icon Re: php korpa i nizovi18.04.2016. u 16:19 - pre 96 meseci
Hvala. Vrlo dobri i korisni komentari. Malo sam konsultovao php manual, pa mi je mnogo jasnije. Pošto vidim da si već spomenuo da PHP ne podržava višedimenzionalne nizove direktno,već da se prave kroz nizove nizova, da li bi mogao, pogotovo ako imaš iskustva u drugim jezicima navesti neke razlike i kako je to riješeno npr u C# ili Javi, sa ovim problemom. Zanimaju me prednosti sa nizovima tamo gdje postoji direktna podrška za višedimenzionalne nizove, u odnosu na na php ako i postoje..neki ilustrativan primjer bi dobrodošao. Hvala još jednom na vrlo korisnim odgvorima. Pozdrav
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: php korpa i nizovi18.04.2016. u 20:44 - pre 96 meseci
Nema nikakve posebne razlike, osim što jezici "koji imaju direktnu podršku" imaju syntactic sugar za inicijalizaciju takvih nizova.

Postoji i potencijalna razlika u performansama, ali nju omogućava statička tipiziranost jezika a ne first-class podrška za multidimenzionalne nizove.
 
Odgovor na temu

[es] :: PHP :: PHP za početnike :: php korpa i nizovi

[ Pregleda: 3205 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.