2016-01-28 53 views
2

所以即時編碼相當新穎,並剛剛開始一個項目的樂趣。 我嘗試構建RPG遊戲,並且我已經到了玩家可以戰鬥並受到傷害的地步。所以我想添加一個被動的健康再生。更新MySQL表中單個列的最佳方法?

所以我想我會用conjob每10分鐘申請一個php文件並用+10更新所有玩家HP。

我用我非常窮的MySQL知識得到了什麼;

<?php 
/* 
* hp_reg.php, auto updater +10hp to players. 
*/ 

    //DATABAS CONNECTION 
    $dbserver="my"; 
    $dbusername ="db"; 
    $dbpassword ="conection"; 
    $db ="information"; 

    //CREATE CONNECTION 
    $conn = new mysqli($dbserver, $dbusername, $dbpassword, $db); 
    $query = "SELECT health FROM users"; 
    $result = mysqli_query($conn, $query); 
    $row = mysqli_fetch_assoc($query); 

    $newhp = $result + 10; 
    $sql = "INSERT INTO users(health) VALUES ($newhp)"; 

很明顯,根本不會工作! 有關要更改哪些技巧以使其起作用的任何提示? 所有的指針非常感謝。

+0

$查詢= 「更新用戶設置的usersname = '約翰'」; – Angel

回答

1
$sql = "UPDATE users SET health = health + 10"; 

更新的代碼

<?php 
/* 
* hp_reg.php, auto updater +10hp to players. 
*/ 

//DATABAS CONNECTION 
$dbserver="my"; 
$dbusername ="db"; 
$dbpassword ="conection"; 
$db ="information"; 

//CREATE CONNECTION 
$conn = new mysqli($dbserver, $dbusername, $dbpassword, $db); 

$sql = "UPDATE users SET health = health + 10"; 

$result = mysqli_query($conn, $sql); 
+1

非常感謝您的幫助! :) 非常感激! – Naxor

+0

*快樂編碼兄弟*歡呼聲。 ! @Xirez –

1

要增加10所有用戶的health列,您可以執行以下查詢:

UPDATE users SET health = health + 10

+2

非常感謝快速回復! :) 非常感激! – Naxor

0

假設:

  1. 要更新health一個用戶;
  2. 每個用戶都有一個唯一的ID;
  3. 唯一標識符作爲userID存儲在數據庫中(如果沒有,請使用正確的字段名稱進行更改);

你有這樣嘗試:

$query = "SELECT health FROM users WHERE userID='$userID'"; 
$result = mysqli_query($conn, $query); 
$row = mysqli_fetch_assoc($query); 

$newhp = $row['health'] + 10; 
$query = "UPDATE users SET health='$newhp' WHERE userID='$userID'"; 
$result = mysqli_query($conn, $query); 

最後,看看到how preventSQL-injection in PHPhow check if your result is empty

+0

謝謝,我會在晚飯後閱讀SQL注入! :) – Naxor

相關問題