Hogyan lehet mysql-t kezelő szervert készíteni?
Szeretnék egy kis játékot készíteni, mysql ben van elmentve ugye a userek es van egy column pl. castlebuild névvel amiben mindig ha upgradelni akarom a castle épitményt bele rakja másodpercekben meddig tart, ha most van 100 user akkor azt akarom mindenk midnen masodpercben 1 el csökenjen, ez emg is van, de minden page refreshnel csinalja csak, hogy lehet bealitani rendesen hogy 1 masodpercenket csinalja ezt ?
PHP kód:
$db = new PDO("mysql:host=localhost;dbname=youtube","root","vertrigo") or die("Cannot connect to mysql");
$result = $db->query("SELECT buildtime,id FROM users");
if($result->rowCount()){
for ($i=0; $i <1 ; $i++) {
$i = 0;
while($row = $result->fetch(PDO::FETCH_OBJ)){
$buildtime = $row->buildtime;
$id = $row->id;
$buildtime -= 1;
if($buildtime < 0){
$buildtimed = 0;
}
$upsate = $db->query("UPDATE users SET buildtime='$buildtime' WHERE id='$id'");
$id="";
$buildtime = "";
}
sleep(1);
}
}
ha lehagyom a sleep(1); et a vegere berakom script ben így:
<script type="text/javascript">
setTimeout(function(){
window.location.reload(1);
}, 1000);
</script>
igy mukodik, de nem lehet megcsinalni hogy pl. ez egy ftp rol fusson vagy hasonlo ?
Alapvetően rossz az elképzelés, egyrészt a PHP nem igazán tud ilyet, másrészt feleslegesen terheled vele az adatbázist.
Hátralévő másodpercek helyett az elkészülés (vagy az építés kezdetének) timestampjét tárold el, majd ebből számolj hátralévő időt.
for ($i=0; $i <1 ; $i++) {
$i = 0
Ez mi a szaaar?
És ebben mégis mi a vicces?
Egyébként nem túl célszerű, több hosszú, egymástól mindössze egy betűvel eltérő változókat használni, mert csökkenti az átláthatóságot, nehezedik a kód megértése, debugolása. Ami nem gond, amíg nem velünk szeretnéd kijavíttatni. Persze lehet azt is, csak jó pénzért. :)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!