Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Jak zbudować tablicę o okreslonym formacie
phpamator
post
Post #1





Grupa: Zarejestrowani
Postów: 328
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/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ć ...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Tomplus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


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

Ten post edytował Tomplus 16.10.2016, 19:28:11
Go to the top of the page
+Quote Post
phpamator
post
Post #3





Grupa: Zarejestrowani
Postów: 328
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

Ostrzeżenie: (0%)
-----


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ę (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/wink.gif)
Dzięki, pozdrówka

Ten post edytował PHPRexio 16.10.2016, 23:08:21
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 14:04