na początek mam sytuację taką:
Baza opisująca skład drewna czyli ile potrzeba surowca na każdy kolejny poziom oraz ile czasu buduje się każdy poziom:
Pole |
Opis |
id_mine_stone |
klucz |
level |
poziom budynku |
req_wood |
ile potrzeba drewna na poziom np: 1 |
req_stone |
ile potrzeba kamienia na poziom np: 1 |
req_gold |
ile potrzeba zlota na poziom np: 1 |
population |
ile pracownikow przybywa |
output |
ile mamy godzinnej produkcji przy np poziomie 1 |
point |
ile zyskamy punktow majac ten poziom budynku |
build_time |
czas w sekundach budowy danego poziomu |
I jest jeszcze tabela która zestawia użytkownika z jego zamkami które posiada:
Pole |
Opis |
id_castles |
klucz |
castle_name |
nazwa zamku |
id_users |
id uzytkownika z bazy users |
store_wood |
który poziom skladu drewna |
store_stones |
który poziom skladu kameinia |
store_gold |
ktory poziom skarbca |
Przykladowe menu pokazuje:
Budynek | Wymagania surowcow | Czas Budowy | Rozkaz |
Sklad drewna (Poziom 26) |Drewno: 29443 - Kamien: 20229 - Zloto: 12469 | Czas: 07:55:24 | Rozbuduj na poziom 2
Sklad kamienia (Poziom 28) | Drewno: 24106 - Kamien: 48716 - Zloto: 17733 | Czas: 09:13:19 | Rozbuduj na poziom 2
Skarbiec (Poziom 29) | Drewno: 45323 - Kamien: 69115 - Zloto: 12469 | Czas: 11:26:51 | Rozbuduj na poziom 2
Tak wlasnie prezentuje się menu i teraz zamiast wysweitlać menu dynamicznie i każdą pozycję menu pytać później o stan budynku wymagania to napisałem jedno zapytanie ale ten minus o którym piszesz to taki że jak dodam budynek to na sztywno w pliku reprezentującym wyświetlanie stanu posiadłości muszę dodać kod.
Zapytanie SQL:
SELECT id_castles,castle_name,id_users,store_wood,store_stones,store_gold,
mine_wood.req_wood AS mine_wood_req_wood,
mine_wood.req_stone AS mine_wood_req_stone,
mine_wood.req_gold AS mine_wood_req_gold,
mine_wood.build_time AS mine_wood_build_time,
mine_stone.req_wood AS mine_stone_req_wood,
mine_stone.req_stone AS mine_stone_req_stone,
mine_stone.req_gold AS mine_stone_req_gold,
mine_stone.build_time AS mine_stone_build_time,
mine_gold.req_wood AS mine_gold_req_wood,
mine_gold.req_stone AS mine_gold_req_stone,
mine_wood.req_gold AS mine_gold_req_gold,
mine_gold.build_time AS mine_gold_build_time
FROM castles_users
LEFT JOIN mine_wood ON (mine_wood.level = store_wood + 1)
LEFT JOIN mine_stone ON (mine_stone.level = store_stones + 1)
LEFT JOIN mine_gold ON (mine_gold.level = store_gold + 1)
WHERE id_castles = 1
Tabele dla kamienia, drewna i złota są analogiczne.
natomiast część pliku odpowiedzialna za prezentacje jest taka:
foreach ($result as $row) {}
echo "<tr>";
echo "<td>Sklad drewna (Poziom $row[store_wood])</td>";
echo "<td>Drewno: $row[mine_wood_req_wood]</td>";
echo "<td>Kamien: $row[mine_wood_req_stone]</td>";
echo "<td>Zloto: $row[mine_wood_req_gold]</td>";
echo "<td>Czas: " . date('H:i:s',mktime(0,0,$row[mine_wood_build_time])) . "</td>";
echo "<td>Rozbuduj na poziom </td>";
echo "</tr><tr>";
echo "<td>Sklad kamienia (Poziom $row[store_stones])</td>";
echo "<td>Drewno: $row[mine_stone_req_wood]</td>";
echo "<td>Kamien: $row[mine_stone_req_stone]</td>";
echo "<td>Zloto: $row[mine_stone_req_gold]</td>";
echo "<td>Czas: " . date('H:i:s',mktime(0,0,$row[mine_stone_build_time])) . "</td>";
echo "<td>Rozbuduj na poziom </td>";
echo "</tr><tr>";
echo "<td>Skarbiec (Poziom $row[store_gold])</td>";
echo "<td>Drewno: $row[mine_gold_req_wood]</td>";
echo "<td>Kamien: $row[mine_gold_req_stone]</td>";
echo "<td>Zloto: $row[mine_gold_req_gold]</td>";
echo "<td>Czas: " . date('H:i:s',mktime(0,0,$row[mine_gold_build_time])) . "</td>";
echo "<td>Rozbuduj na poziom </td>";
echo "</tr>";
Czy podążanie tą drogą będzie prawidłowe ?