2016-01-29 13 views
-1

我有一個表,其中包含以下字段:id(自動增量/主鍵)/ Integer1/Integer2/Sum/Product)。我已經填寫整數1和整數2用下面的代碼:在PHP中使用MySQL獲取函數計算表中的2個字段的總和

for ($i=1;$i<=1000;$i++) 
{ 
    $x2=rand(0,100); 
    $x3=rand(0,100); 
    $sql="INSERT INTO data(integer1,integer2) VALUES ($x2,$x3)"; 
$conn->query($sql);  
} 

My PHPMyAdmin is now this, with the sum and product at default values, 0.

我需要幫助來準備它採用MySQLFetch並計算整數1和整數2的總和,並在分配和與積的值的函數。我知道這可以通過一個簡單的循環完成,但是我們真的很想了解獲取數據。

回答

0

假設您正在使用mysqli這是如何使用$conn->query(),那麼這可能是有趣的。

/* establish db connection */ 
$dbhost = 'localhost'; 
$dbuser = 'root'; 
$dbpwd = 'xxx'; 
$dbname = 'xxx'; 
$conn = new mysqli($dbhost, $dbuser, $dbpwd, $dbname); 

/* select records to to perform sum & product upon */ 
$sql='select * from `data`'; 
$res=$conn->query($sql); 
if($res){ 

    /* prepare a new sql statement to update db records */ 
    $sql='update `data` set `sum`=?, `product`=? where `id`=?;'; 
    $stmt=$conn->prepare($sql); 

    while($rs=$res->fetch_object()){ 
     /* make some variables with records for each record */ 
     $id=$rs->id; 
     $int_1=$rs->integer1; 
     $int_2=$rs->integer2; 

     /* basic maths operations */ 
     $sum=$int_1+$int_2; 
     $product=$int_1 * $int_2; 

     /* bind the variables into declared statement & execute */ 
     $stmt->bind_param('iii', $sum, $product, $id); 
     $stmt->execute(); 
    } 
    /* tidy up */ 
    $stmt->close(); 
    $conn->close(); 
} 
-1
$query = "SELECT * FROM data"; 
$row = mysql_query($query); 
while($result = mysql_fetch_assoc($row)) 
{ 
    $id = $result['id']; 
    $integer1 = $result['integer1']; 
    $integer2 = $result['integer2']; 
    $sum = $integer1 + $integer2; 
    $prod = $integer1 * $integer2; 
    mysql_query("UPDATE data SET sum=$sum,product=$prod WHERE id=$id"); 
} 
+0

有這個問題 - 它使用mysql_query,它缺少來自字段名稱'integer1'的引號。 – RamRaider

+0

我正在嘗試使用mysqli做OOP方式 –

0

請試試下面的例子:

$db = new mysqli('localhost', 'root', 123456, 'data'); 

$query = 'SELCT * FROM tableName'; 
$objResult = $db->query($query); 
while ($resultRow = $objResult->fetch_object()) { 
    $id = $resultRow->id; 
    $integer1 = $resultRow->integer1; 
    $integer2 = $resultRow->integer2; 
    $result = sumProduct($integer1, $integer2); 
    $sum = $result[0]; 
    $product = $result[1]; 

    $query = "UPDATE tableName SET 
       sum = '$sum', 
       product = '$product' 
       WHERE 
       id = $id"; 
    $db->query($query); 
    $db->close(); 
} 

function sumProduct($int1, $int2) { 
    $sum = $int1 + $int2; 
    $product = $int1 * $int2; 
    return array($sum, $product); 
} 

就是這個樣子令您滿意?

+0

真棒,這是我期待的。產品和總額更新後顯示操作成功的最簡單方法是什麼?謝謝 –