Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawanie kolejnego elementu do tablicy wielowymiarowej
Forum PHP.pl > Forum > PHP
rafiksq
Witam,
w jaki sposob do tablicy ponizej moge dodac na końcu każdego zbioru słowo "edycja"?

  1. [
  2. {"number":"1","name":"203","position":"Londyn","victories":"Leicester"},
  3. {"number":"2","name":"204","position":"Bolton","victories":"Munchester"},
  4. {"number":"3","name":"206","position":"Leeds","victories":"London"},{"number":"4","name":"209","position":"Birmingham","victories":"Greenpoint"}
  5. ]


tak aby uzyskac:

  1. [
  2. {"number":"1","name":"203","position":"Londyn","victories":"Leicester","edycja";"edycja"},
  3. {"number":"2","name":"204","position":"Bolton","victories":"Munchester","edycja";"edycja"},
  4. {"number":"3","name":"206","position":"Leeds","victories":"London","edycja";"edycja"},
  5. {"number":"4","name":"209","position":"Birmingham","victories":"Greenpoint","edycja";"edycja"}
  6. ]



kod:
  1. <?
  2. require_once('mysql_connect.php');
  3. $arr = array();
  4.  
  5. $query = "SELECT * FROM json";
  6. $result = mysql_query ($query);
  7. while($row = mysql_fetch_object($result)){
  8. $arr[] = $row;
  9. }
  10. //print_r($arr);
  11. $jsonStr = json_encode($arr);
  12.  
  13. echo $jsonStr
  14. ?>
Piogola
  1. while($row = mysql_fetch_object($result)){
  2. $row['edycja'] = 'edycja';
  3. $arr[] = $row;
  4. }
rafiksq
No niestety :
"Fatal error: Cannot use object of type stdClass as array in C:\Program Files (x86)\WebServ\httpd\dijit\json.php on line 15"

Dane z bazy pobiera jako obiekt nie tablicę.
thek
To zamiast [] użyj ->
Piogola
Albo zamień na mysql_fetch_array, jeśli nie używasz danych dalej
rafiksq
Właśnie w tym problem, że uyzwam do dojoGrid i musze je przepuscic jako obiekt do funkcji json_encode();

Rozwiązanie problemu to: $row->edycja="edycja"; smile.gif
thek
Co ja napisałem dwa posty wyżej, gdyby chciało Ci się tam zajrzeć smile.gif
rafiksq
Czytałem smile.gif) "To zamiast [] użyj -> "
Ale gdybym zamienilł nawiasy na strzłke to bym mial $row-> = 'edycja';
A moj sposob to: $row->edycja="edycja";

thek
Myślałem, że napisałem "zamień [] na ->" a nie "zamień ['edycja'] na ->" wink.gif Poza tym chyba logiczne, że w obiekcie odwołujemy sie do pola jako
  1. $obiekt = new Klasa();
  2. $obiekt->pole = wartość;

Ale mam wrażenie, że nie odrobileś jako zadanie tutoriala z obiektówki w PHP, więc chyba czas zajrzeć na odpowiednie strony moim zdaniem, skoro chcesz się posługiwać wlasnie obiektami jako kontenerami danych. Przynajmniej do poprawnego korzystania z klasy std.
#luq
  1. json_encode($arr);


zamień na

  1. json_encode((array)$arr);


Aaa co ja za głupoty plotę...
Tak nie rób, to nie pomoże.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.