簡體   English   中英

從$ _POST抓取部分數據時進行FOR循環

[英]FOR looping while grabbing part of the data from $_POST

自從我迷惑了for循環並想知道這是否可行以來已經有一段時間了:這就是我所擁有的:

$mn = $_POST['mnpoints'];                   
$mi = $_POST['mipoints'];
$in = $_POST['inpoints'];
$wi = $_POST['wipoints'];

一旦單擊“提交”按鈕,這些表單中的編號將使用以下代碼更新MySQL數據庫

for ($i = 0; $i <=4; $i++ )
{
  mysql_query("UPDATE " . $db_table . " SET `score` = `score` + <VARIABLE HERE> WHERE id=$i") or die (mysql_error());
}

做到這一點的最佳方法是什么? 我總是可以將變量更改為$ m1-$ m4,而只需使用$ m $ i

只是想知道是否還有其他方法或更好的方法,謝謝

將變量放入數組中:

$values = array($mn, $mi, $in, $wi);

然后使用foreach對其進行迭代,或使用$i對其進行索引。

注意:您的代碼容易受到SQL注入攻擊的攻擊。 我強烈建議您閱讀mysqli准備好的語句等:

http://php.net/manual/zh/book.mysqli.php

mysql接口已正式棄用 ,不應再使用。

如果“ mnpoints”和“ inpoints”等與“得分”有何關系?如果您只是想轉儲所有這些值並將它們加在一起,則:

$score = $mn + $mi  + $in +  $wi;
$sql = "UPDATE ... SET score=score+$score";
function bulkUpdateSingleColumn($table, $id_column, $update_column, array &$idstovals){
    $sql = "update $table set $update_column = CASE $id_column ";
    foreach($idstovals as $id=>$val){
        $sql .= " WHEN '$id' THEN '$val' \n";
    }
    $sql .= " END
    WHERE $id_column in (" . implode(',', array_keys($idstovals)) . ")";
//debugging info
    echo '<small>'.$sql.'</small>';
    $idstovals=array();       
    db_query($sql);      
    done();       
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM