Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie danych, pare tabel na raz
Forum PHP.pl > Forum > PHP
teez
Witam..

Mam następującą sprawę, męczę się z tym już od paru godzin..

Potrzebuję wyciągnąć sumę graczy i slotów dla danego serwera.

Sprawdzenie stanu serwera -> Wyciągniecie danych -> Sprawdzenie do jakiej sieci jest przypisany -> UPDATE gracze i liczba w tabeli sieci

Aktualnie mam :

  1. <?
  2.  
  3. $SQL = "SELECT COUNT(*) FROM serwery"; // Zapytanie liczące ilość wpisów w bazie
  4. $RES = mysql_query($SQL); list($iloscWpisow) = mysql_fetch_row($RES);
  5.  
  6. $SQL = "SELECT *
  7.  
  8. FROM serwery
  9. ORDER BY id ASC
  10. LIMIT ".mysql_escape_string((int)$_GET['page']*ILOSC_WYNIKOW_NA_STRONIE).",".ILOSC_WYNIKOW_NA_STRONIE;
  11.  
  12. // pobiera ILOSC_NA_STRONIE rekordów z bazy, sortując wg daty rosnąco, zaczynając od $_GET['page']*ILOSC_NA_STRONIE
  13. $RES = mysql_query($SQL); // wykonujemy zapytanie
  14. while($AFR = mysql_fetch_assoc($RES)){
  15.  
  16. ....
  17. $idserwera = $AFR['id'];
  18. $data = date("H:i A");
  19. $ip = ''.$AFR['ip'].':'.$AFR['port'].'';
  20. $nazwa = $hostname;
  21. $pkt = $players * 100 / $playersmax;
  22. $ids = $AFR['id'];
  23. $typgt = $AFR['typgt'];
  24. $typp = $AFR['typp'];
  25. $typg = $AFR['typg'];
  26. $promowanie = $AFR['promowanie'];
  27. $nick = $AFR['nick'];
  28. $status = $status;
  29. $zapytanie = "INSERT INTO `serwer_players2min` VALUES(`id`, '".$idserwera."','".$players."','".$playersmax."','".$mapa."','".$data."', '".$ser."', '".$ip."', '".$nazwa."', '".$typgt."', '".$typg."', '".$typp."', '".$pkt."', '".$promowanie."', '".$status."', '".$nick."')";
  30.  
  31. mysql_query($zapytanie);
  32. $query = "select * from wlasciciel WHERE idserwera = '".$idserwera."'";
  33. $result = mysql_query($query);
  34. $num_results = mysql_num_rows($result);
  35. $row = mysql_fetch_array($result);
  36. $idsieci = $row['idsieci'];
  37. $zapytanie2 = "UPDATE `sieci` SET `liczba` = `liczba`+'".$players."', `max` = `max`+'".$playersmax."' WHERE id = '".$idsieci."'".
  38. mysql_query($zapytanie2);
  39. }
  40. ?>




Chcę uzyskac taki efekt:

Jeżeli serwer A jest przypisany do sieci C, to w rekordzie sieci C w kolumnie liczba i max zostaną dopisane wartości z serwera A.

Serwer A jest przypisany do sieci C w tabeli wlasciciel w której podane są :

Idsieci
Idserwera


Dodam, że pierwszy rekord dodaje? A pozostałe już nie.
mmmmmmm
A co ma robić to:
"INSERT INTO `serwer_players2min` VALUES(`id`,
questionmark.gif
Bo jakoś nie łapię idei...
teez
Dodaje co 3 minuty ( cron ) wygenerowane dane do bazy, abym później to mógł pobierać na stronę główną ( zaoszczędzenie pamięci, aby nie generowało się co odświeżenie, coś typu zamiennik cache ).
wiiir
a jak masz ozaczone ile jest slotow na serwerze? Bo rozumiem ze wpis w tabeli serwery to gracz na serwerze

Wydaje mi sie ze wystarcza zwykle county i grupowania smile.gif
teez
Z każdego serwera wybiera liczbę ( graczy online np. 20 ) , max slotow ( np. 25 ).

mmmmmmm
Pisząc że nie łapię idei miałem na myśli, że zapytanie jest wzięte z *** (cenzura). Sprawdzałeś w ogóle to np. w PMA? Albo odczytałeś mysql_error()questionmark.gif Nie ma takiej składni, że w INSERT podajesz VALUES + nazwę pola.
wiiir
Cytat(mmmmmmm @ 28.01.2013, 22:56:36 ) *
Pisząc że nie łapię idei miałem na myśli, że zapytanie jest wzięte z *** (cenzura). Sprawdzałeś w ogóle to np. w PMA? Albo odczytałeś mysql_error()questionmark.gif Nie ma takiej składni, że w INSERT podajesz VALUES + nazwę pola.

No przeciez składnia jest poprawa, nie musi podawac listy insertowanych kolumn jeżeli uzupełnia jest w dobrej kolejnosci wartościami.

Cytat
Z każdego serwera wybiera liczbę ( graczy online np. 20 ) , max slotow ( np. 25 ).


Jak wybiera ta liczbęquestionmark.gif Jak to jest określone w tabeli? Parametr jakiś czy co?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.