Tilføj key and value ind i et array?

Tags:    php array

Hej Udviklere..

Jeg søgt, men har ikke fundet løsningen. Jeg har denne stump kode(Taget ud af sammenhæng):
Fold kodeboks ind/udKode 


Problemet er, at $array['type'] = $type; bliver ignoreret og det er kun nøglerne og værdierne fra $sth->fetchAll(PDO::FETCH_ASSOC);, der bliver tilføjet til arrayet. Hvis jeg derimod var dumper $array['type'] vil det give en streng på 2 med værdien 2.

Hvad gør jeg forkert?



Indlæg senest redigeret d. 29.12.2013 20:31 af Bruger #15747
6 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Du må tjekke hvad $array indeholder inden du tildeler variable nye værdier. Det samme med $_SESSION['value']

Fordi som det står der, så er $_SESSION['value'] ikke et array, og derfor får du fejlen som du selv nævner.



Indlæg senest redigeret d. 30.12.2013 10:37 af Bruger #10216
også hvis du sætter var_dump() lige efter sth->execute() eller lige efter $array = $_SESSION['value'];

Her er flere eksempler på hvorfor din fejlbesked opstår:
http://informationideas.com/news/2006/06/14/fatal-error-cannot-use-string-offset-as-an-array-in/



Tjah... du overskriver indholdet af dit array på linjen efter $sth->execute();

Linjen er:
Fold kodeboks ind/udKode 


Derfor findes $array['type'] ikke.

I øvrigt giver din SQL ingen mening med det der "2 = :type". Meget vel være taget ud af en kontekst, men du sætter $type = 2, og bruger denne i din SQL
Derfor vil der stå "SELECT * FROM tabel WHERE id = :id AND 2 = 2 LIMIT 1", vil hverken medregne eller frasortere nogle rækker i din tabel. Og du har jo allerede valideret at noget type er lig 2 ?



Indlæg senest redigeret d. 30.12.2013 10:30 af Bruger #10216
Det kunne nok gøres pænere, men min prepared statement giver et output, så der er ikke noget galt der. Det er fordi jeg har lavet $type om - den hedder i min oprindelige kode noget andet. :P

Den bliver overskrevet siger du. Men problemet er, hvis jeg så skriver:
Fold kodeboks ind/udKode 

Vil det være en fejl:
Fold kodeboks ind/udKode 

For så kan jeg ikke udmiddelbart se, hvordan jeg ellers skulle kunne gøre det?




Indlæg senest redigeret d. 30.12.2013 00:49 af Bruger #15747
Du må tjekke hvad $array indeholder inden du tildeler variable nye værdier. Det samme med $_SESSION['value']

Fordi som det står der, så er $_SESSION['value'] ikke et array, og derfor får du fejlen som du selv nævner.


Mhmm.. Ved ikke helt om jeg er med. Hvis jeg var dumper begge to vil det begge give:
Fold kodeboks ind/udKode 




Okay :)

Tak for hjælpen.



t