Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Wyświetlenie danych z bazych jako JSON
Forum PHP.pl > Forum > Przedszkole
roghatt
Posiadam tabelę w bazie z zamówieniami. Wygląda ona tak (tylko 3 interesujące kolumny):
nr_zamowienia, nazwa_towaru, cena_towaru
5, produkt1, 100
8, produkt2, 100
8, produkt3, 100
8, produkt4, 100
9, produkt2, 100
9, produkt3, 100

Wpisuję wszystko do tablicy aby otrzymać taki schemat:

Kod
{ numer_zamowienia
      {
       nazwa_towaru
       cena_towaru
       }
}


czyli aby z danym bylo cos takiego

Kod
{ 5
       {
       produkt1
       100
       }
}

{ 8
      {
       produkt2
       100
       }
      {
       produkt3
       100
       }
      {
       produkt4
       100
       }
}


czyli w kodzie:
  1. $arr = array(
  2. 'id' => 'nr_zamowienia',
  3. 'acticles' => array (
  4. 'name' => 'nazwa_produktu',
  5. 'price' => 'cena__produktu',
  6. ),
  7. echo json_encode($arr);


kod z pobraniem z bazy
  1. $wynik1= mysql_query ("SELECT DISTINCT nr_zamowienia FROM zamowienia");
  2. while($row=mysql_fetch_array($wynik1))
  3.  
  4. {
  5.  
  6. $nr_zamowienia=$row['nr_zamowienia'];
  7.  
  8. $wynik2= mysql_query ("SELECT * FROM zamowienia WHERE nr_zamowienia=$nr_zamowienia");
  9. while($row=mysql_fetch_array($wynik2))
  10. {
  11. $nazwa_produktu=$row['nazwa'];
  12. $cena_produktu=$row['cena'];
  13.  
  14. $arr = array(
  15. 'id' => $nr_zamowienia,
  16. 'acticles' => array (
  17. 'name' => $nazwa_produktu,
  18. 'price' => $cena_produktu,
  19. ),
  20. );
  21.  
  22. echo json_encode($arr);
  23. }
  24. }


Ale w tym momencie powtarza mi numery zamówień. Nie wiem jak w miejscu 'articles' powtarzać tą część aby w jeden element tablicy z numerem zamówienia wpisało więcej produktów, a nie osobno z numerami zamówień.
nospor
Musisz pogrupowac dane w php. W tym celu wystarczy ci tylko jedno zapytanie do bazy, a nie jak u Ciebie wiele, a potem tylko obrobka w php. Tutaj o tym pisalem:
http://nospor.pl/grupowanie-wynikow.html
roghatt
super, dzięki o to chodziło. Teraz wyświetla tak jak chcę.

pozdrawiam
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.