Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Pobieranie danych z wielu tabel
savander
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 31.01.2014

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


Witam, nie mogę sobie poradzić z pewną rzeczą. Otóż mam bazę danych z rekordami graczy na mapach(Ich czasy przejścia), do każdej mapy jest tworzona nowa tabela (Map jest dużo). W jaki sposób mogę pobrać z wszystkich tabel pierwszych 5 graczy i zliczyć każdego z osobna (Ilość wystąpień ich nazw).

Póki co mam spis tabel w zmiennej $all
  1. connection();
  2. $stmt = mysql_query('SHOW TABLES;');
  3. if ($stmt) {
  4. while($table = mysql_fetch_row($stmt)){
  5. if(!preg_match("/^blocker_/",$table[0]))
  6. $all[] = $table[0];
  7. }
  8. }
  9.  
  10. $tables = $implode(', ', $all);


Aby sprawdzić czy w ogóle się coś wybiera, jednakże po tym zapytaniu w php pokazuje się
Column 'Name' in field list is ambiguous
  1. function count(){
  2. connection();
  3. global $all;
  4. $tables = implode(', ', $all);
  5. $stmt = mysql_query('SELECT Name, Time FROM '.$tables.' ORDER BY Time ASC LIMIT 5;') or die(mysql_error());
  6. }




Nie mam zielonego pojęcia jak to rozwiązać.
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A czemu nie stworzysz jednej tabeli dla wszystkich map? Ile to "duzo map"? Ilu userow?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
savander
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 31.01.2014

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


Ze względu na to, że w tej grze ludzie się nie rejestrują, na jedną mapę może być 2-3 tys różnych czasów, map około 200 może więcej. W dodatku jest to serwer którego ja nie pisałem, tak został już stworzony, według mnie jest to po prostu optymalne rozwiązanie dla takiej ilości danych, aby to po prostu długo nie trwało (cachowanie nic nie da, zbyt często dane się zmieniają)

I tak to jest serwer gry, ludzie mogą sprawdzić swoje osiągi na serwerze, smile.gif

Ten post edytował savander 25.07.2014, 10:20:43
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




600tys rekordow to zadna liczba dla mysql.... Powinno to byc w jednej tabeli to nie byloby problemow z wyliczeniami

Jesli jednak nie zamierzasz zmieniac struktury to u ciebie ma byc UNION na kazdą tabele oraz COUNT do zliczania. To co masz teraz nie ma prawa dzialac i jak widac nie dziala


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 08:00