2016-04-06 55 views
0

這是我的代碼,我想將$result保存到名爲grade,column name:rating的數據庫中。請幫幫我。我嘗試了將使用這些代碼:我想獲得3個變量的平均值並保存它

insert into grade(subject_id,rating)VALUES('$subject_id','$row5') 

但沒有任何事情發生

<?php 
    $result = mysql_query("SELECT CEILING((($prelim + $midterm + $final)/3.0)*100)/100 FROM grade"); 
    $row5 = mysql_fetch_array($result) 
?> 
+4

如何插入'INSERT INTO'語句。另外,請不要使用'mysql_ *'函數。它們已被棄用,並且不適用於新版本的PHP。 –

+2

聽起來你應該從寫入PHP數據庫的教程開始。這裏沒有執行插入操作的代碼。 – David

+0

爲什麼要在sql SELECT語句中對3個PHP變量進行計算。 PHP自己很開心地'add'和'division' – RiggsFolly

回答

-1

你應該做這樣的事情(我期待$ subject_id是主鍵和整數)。

$result = mysql_query("SELECT CEILING((($prelim + $midterm + $final)/3.0)*100)/100 as rating FROM grade"); $row5 = mysql_fetch_assoc($result) $sql = "insert into grade(subject_id,rating) VALUES (" + (int)$subject_id + ", '"+ mysql_real_escape_string($row5['rating']) + "');";

你應該總是逃避SQL輸入,以防止SQL注入,也如果使用單引號PHP不會與變量的值取代他們,但它使用精確的字符串喜歡你「$ subject_id」

+0

爲什麼要在sql SELECT語句中對3個PHP變量進行計算。 PHP非常高興地自己增加和劃分 – RiggsFolly

+0

RiggsFolly - >我只是使用J.Toe提供的內容。我不試圖改進他的選擇陳述。 – user1113000

+0

另外你爲什麼要在你剛剛計算的值上運行mysql_real_escape_string()',因此知道它是安全的? – RiggsFolly

0

我我假設這裏有一點,但如果你有PHP變量$prelim,$midterm$final那麼你在PHP中進行計算,而不是SQL SELECT。

<?php 
    $rating = ceil((($prelim + $midterm + $final)/3.0)*100)/100; 

    $result = mysql_query("INSERT into grade 
            (subject_id,rating) 
          VALUES('$subject_id','$rating')" 
         ); 
    if ($result === FALSE) { 
     echo mysql_error(); 
     exit; 
    } 
?> 

然而

請不要使用the mysql_ database extension,它 被棄用(一去不復返在PHP7) 特別是如果你剛開始學習PHP,花你的精力學習PDOmysqli_數據庫擴展, and here is some help to decide which to use