Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Jak zbudować tablicę o okreslonym formacie
Forum PHP.pl > Forum > Przedszkole
phpamator
Hejka,

Podjąłem nierówną walkę z tematem wyświetlanie w postaci chartów danych z tabel i utknąłem na budowaniu tablicy zwracanej do wyświetlenia na stronie.
Gdyby ktoś mógł mnie lekko oświecić jak powinienem to zrobić .....
... proszę ...

Otóż mam w tabeli:
page - i to jest wartość powtarzalna więc muszę policzyć ile razy każda z tych wartości się powtórzyła to po pierwsze,
date - konieczne jest wyciągnięcie np dnia tygodnia albo dnia miesiąca (lepiej miesiąca) do ułożenia kolejno ile razy tego dnia pojawiła się ta czy inna wartość,

bardzo prostą operacją jest wyciągnięcie danych ale układanie stanowi jakąś zagadkę .... jak narazie smile.gif

  1. require_once('../config/config.php');
  2. $output = [];
  3. $day = [];
  4. $query = "SELECT page, count(*) as cnt FROM `analytics` GROUP BY page ORDER BY page ASC";
  5. $results = mysql_query($query);
  6. while($row = mysql_fetch_array($results)){
  7. $output[] = $day[$row['page'].$row['cnt']];
  8.  
  9. }
  10. var_dump($output);

i to narazie tyle.
W efekcie na końcu chciałbym dostać coś takiego :
'{"strona1": 3,"strona2": 5, "strona3": 8, "Day": "1"},{"strona1": 3,"strona2": 5, "strona3": 8, "Day": "2"},...';
co mi wygląda na array w array.

Podpowiedzcie proszę jak się do tego zabrać ...
Tomplus
z tego co robisz to daje ci wynik taki ze
Kod
[
       'stronaA48',
       'stronaB18',
       'stronaC38'
]


zamiast
Kod
[
       'stronaA' => 48,
       'stronaB' => 18,
       'stronaC' => 38
]



więc daj a Dzień daj jako klucz główny tablicy
  1. $output[$row['data]][$row['page']] = $row['cnt];



wtedy będzie wygląda twoja tablica tak:
Kod
[
    '2016-09-01' => [
                           stronaA => 23,
                           stronaV => 45
  ],    '2016-09-02' => [
                           stronaA => 27,
                           stronaV => 49
  ],

]


itd
phpamator
Hej, dzięki za podpowiedzi, w międzyczasie coś podobnego skleiłem:
  1. while($row = mysql_fetch_array($result)){
  2. $day[$row['page'] = $row['cnt']];

w efekcie czego dostaję na koncu coś co powoli zaczyna przypominać formę jakiej potrzebuję smile.gif

Ok, po dwugodzinnej walce, w końcu kapuję o co kaman i wiem już jak sobie poradzić z tym problemem.
Zakończyłem na:

  1. ...
  2. $day[$row['visit']][$row['page']] = (int)$row['cnt'];
  3. ...

i zasadniczo robi co trzeba wink.gif
Dzięki, pozdrówka
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.