Jump to content
naXe

Najwięcej wpisów z JSON w MySQL

Recommended Posts

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.


www.topfrags.pl  | www.gs-dev.pl

Share this post


Link to post
Share on other sites

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 :) 

Edited by naXe

www.topfrags.pl  | www.gs-dev.pl

Share this post


Link to post
Share on other sites
$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

Share this post


Link to post
Share on other sites

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?


www.topfrags.pl  | www.gs-dev.pl

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

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.