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
Forti
post
Post #2





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

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


Szczerze powiem, że walcze z tym od kilku dni już.

Dla każdej zmiennej muszę robić inną tablice? Chyba muszę wrócić do podstaw, sam tego nie napisze (IMG:style_emoticons/default/smile.gif)

Zrobiłem coś takiego (kod poniżej). Działa fajnie, jednak wszystkie polade [punkt] zostają zapisane ostatnią otrzymaną wartością $punktacja_totalna.
Domyślam się że, po

  1. UPDATE sklad SET punkt='$punktacja_totalna'

powinien znaleźć się jakiś warunek..

  1. <?php
  2. include("config.php");
  3.  
  4.  
  5.  
  6.  
  7.  
  8. $result = mysql_query("SELECT * FROM sklad ORDER BY punkt DESC",$connect);
  9.  
  10.  
  11. while($myrow = mysql_fetch_assoc($result))
  12. {
  13.  
  14.  
  15.  
  16. $nazwa=$myrow['nazwa'];
  17. $numer=$myrow['numer'];
  18.  
  19.  
  20. $diablo_api_url = "http://eu.battle.net/api/d3/profile/{$nazwa}-{$numer}/";
  21. $diablo_json = file_get_contents($diablo_api_url);
  22. $character_info = json_decode($diablo_json);
  23. $paragon_level = $character_info->paragonLevel;
  24. $class = $character_info->heroes[0]->class;
  25. $h_level = $character_info->paragonLevelHardcore;
  26. $elite = $character_info->kills->elites;
  27. $suma = $paragon_level;
  28. $ssuma = $h_level;
  29. $sssuma = $elite;
  30. $ssssuma = $myrow['achiv'];
  31. $punktacja_totalna = $suma + $ssuma + $sssuma + $ssssuma;
  32. settype($punktacja_totalna, "integer");
  33.  
  34.  
  35.  
  36.  
  37.  
  38. $a = mysql_query("UPDATE sklad SET punkt='$punktacja_totalna' ",$connect);
  39.  
  40. echo $myrow['punkt'] ;
  41.  
  42. }
  43.  
  44.  
  45. ?>



Wiem że obecnie kod wykonuje bardzo dużo zapytać, postaram się ogarnąć cache w późniejszym czasie - wyniki mogą aktualizować się raz na 1-2 dni, to nie przeszkadza.

Rozwiązałem, dałem zmienna:

  1. $newsid=$myrow['newsid'];


a w linie UPTADE warunek: newsid='$newsid' (przypisywane automatycznie każdej kolumnie).




można zamknąć temat.
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: 15.10.2025 - 19:52