Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zmienna, obliczana w trakcie jako wartość w tabeli MySQL
Forti
post
Post #1





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Witam.

Mam pewien problem, otóż posiadam kod, który pobiera pewne dane z plików json z zewnętrznych serwerów.

  1. diablo_api_url = "http://eu.battle.net/api/d3/profile/{$myrow['nazwa']]}-{$myrow['numer']}/";
  2. $diablo_json = file_get_contents($diablo_api_url);
  3. $character_info = json_decode($diablo_json);
  4. $paragon_level = $character_info->paragonLevel;
  5. $class = $character_info->heroes[0]->class;
  6. $h_level = $character_info->paragonLevelHardcore;
  7. $elite = $character_info->kills->elites;
  8.  
  9. $punktacja_totalna = $paragon_level + $h_level + $elite;
  10. settype($punktacja_totalna, "integer");



Kod wyświetlający wygląda tak:

  1. $result = mysql_query("SELECT * FROM sklad ORDER BY punktacja_totalna DESC",$connect);
  2. mysql_query("SET NAMES 'utf8'");
  3. while($myrow = mysql_fetch_assoc($result))
  4. {
  5. }


chce aby $punktacja_totalna była pobierana z bazy danych, obliczana automatycznie i następnie wyświetlana od największej do najmniejszej.

Próbowałem kilku sposobów jednak bezskutecznie.

Czy taki sposób jest prawidłowy:
  1. $punktacja_totalna = mysql_real_escape_string($myrow['punktacja_totalna']);


Ten post edytował Forti 19.05.2014, 13:25:27
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
markonix
post
Post #2





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Oki, chyba rozumiem.

Dwie opcje:

1) Zapisujesz do to bazy, czyli robisz pętlę po składzie i aktualizujesz każdemu liczbę punktów. Potem już mając to w bazie proste ORDER BY. Jedyny minus to że wykonujesz 2 razy te samo zapytanie.
2) Tworzysz tablice z wyniku z bazy, do tablicy dodajesz wartość punktów i potem korzystasz z funkcji sortujących po wartości http://stackoverflow.com/questions/1597736...iven-key-in-php
Ewentualnie liczbę punktów ładujesz w index albo to brzydko by wyglądało.

W pierwszej opcji można pokusić się o cache - w zależności od tego jak często liczba punktów się zmienia, nie za każdym razem aktualizować te punkty.
Unikniesz też dużej liczby requestów do strony battle netu (mogą np. Cię zablokować).
Go to the top of the page
+Quote Post

Posty w temacie


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: 16.10.2025 - 09:23