Skocz do zawartości
Urlop / Vacation Czytaj dalej... ×
  • Zarejestruj się
naXe

Najwięcej wpisów z JSON w MySQL

Polecane posty

W pewnej kolumnie zapisuje wynik w JSON:

{"Nick":"naXe","IP":"127.0.0.1"}

Chcę teraz pobrać rekord (Nick) z tych wpisów.
Nie wiem jak to napisać, więc może opiszę to łopatologicznie.

Chcę zrobić "Najwięcej wpisów ( Nick: ilość)".

Ilość to sobie obliczę poprzez COUNT(), ale żeby to zrobić muszę pobrać z JSON wartość z klucza Nick.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

inaczej niż foreach po tej tabeli się nie da

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

masz na myśli:

foreach(json_decode('{"Nick":"naXe","IP":"127.0.0.1"}', TRUE) as $row)
{
	// dalszy kod
}

możesz coś dalej napisać, bo do zmienna $row będzie w postaci tablicy array:

$row = [
	0 => [
		'Nick' => 'naXe',
		'IP' => '127.0.0.1'
	]
	...
];

czyli to  i tak mi na razie w niczym nie pomaga :) 

Edytowano przez naXe

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
$result = array();

foreach(json_decode('{"Nick":"naXe","IP":"127.0.0.1"}', TRUE) as $row)
{
	if( !isset( $result[ $row[ 'Nick' ] ] ) ) 
    {
    	$result[ $row[ 'Nick' ] ] = 0;
    }

	$result[ $row[ 'Nick' ] ]++;
}

Później robisz flipa i sortujesz po kluczach a następnie pobierasz element z końca lub z początku tablicy w zależności czy sortujesz rosnąco czy malejąco

  • Like 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ok działa, ale jak w następnym wpisie w tej kolumnie zamiast naXe będzie np. naXe2 to będzie się zwiększać jeden licznik, jak zrobić, aby każdy "Nick" miał własny licznik?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

każdy ma swój. przecież masz tam, że kluczem w tabeli jest wartość klucza Nick, czyli w tym wypadku naXe. Jak będzie kowalski później to on też będzie miał swój wpis

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Taki mam wynik

Array
(
    [n] => 1
    [1] => 1
)

bez użycia array_flip i sortowania

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

pytanie jak wygląda tablica po zdekodowaniu jsona

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Array
(
    [Nick] => 'naXe'
    [IP] => '127.0.0.1'
)

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

tak wygląda $row, czy json_decode?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

json_decode

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

no to źle. bo to uniemożliwia dodanie kolejnych rekordów, json_decode powinien zwrócić

Array (
  Array
  (
    [Nick] => 'naXe'
    [IP] => '127.0.0.1'
  )
  Array
  (
    [Nick] => 'naXe'
    [IP] => '127.0.0.1'
  )
)

 

  • Like 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A widzisz, zmieniłem i od razu są wyniki takie jakie powinny być ;)

Array
(
    [naXe] => 5
    [naXe2] => 3
)

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Rozwiązane.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Problem został rozwiązany.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość
Temat jest zablokowany i nie można w nim pisać.

  • Kto przegląda   0 użytkowników

    Brak zalogowanych użytkowników przeglądających tę stronę.

×

Ważne informacje

W celu świadczenie usług przez nasz Serwis na najwyższym poziomie, w ramach Serwisu wykorzystujemy pliki Cookies (tzw. ciasteczka). Korzystając ze stron Serwisu IPSBEYOND.PL bez zmiany ustawień przeglądarki będą one zapisane w pamięci urządzenia. Jeżeli nie dokonacie Państwo zmiany ustawień przeglądarki internetowej to wyrażacie zgodę na zapisywanie plików Cookies.