2012-10-23 29 views
0

所以它很簡單,我需要用2和3等替換數字1等等32次。我知道如何創建簡單的PHP循環和一切,但想離開這個「乾淨」,所以它更容易讓你們幫助我。需要創建一個PHP LOOP(不知道如何進行多次失敗後)

非常感謝您給我提供的任何幫助。

<?php 
    $con = mysql_connect("localhost","user","pass"); 
    if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

    mysql_select_db("mbbcom1_rfhl", $con); 

    $sql="UPDATE `mbbcom1_rfhl`.`_statbu` 
    SET gp= gp + '$_POST[gp1]', g= g + '$_POST[g1]', a= a + '$_POST[a1]', shot= shot + '$_POST[s1]', pm= pm + '$_POST[pm1]', ppg= ppg + '$_POST[ppg1]', shg= shg + '$_POST[shg1]', bs= bs + '$_POST[blk1]', gwg= gwg + '$_POST[gwg1]', sog= sog + '$_POST[sog1]', soa= soa + '$_POST[soa1]', pim= pim + '$_POST[pim1]' WHERE `season` =9 AND `_statbu`.`player_id` = 1"; 
    if (!mysql_query($sql,$con)) 
    { 
    die('Error: ' . mysql_error()); 
    } 
    mysql_close($con) 
    ?> 

所以僅僅是明確的,我需要下一個循環做同樣的事情,但與 '$ _ POST [GP2]',G = G + '$ _ POST [G2]' .... ECT

再一次,謝謝

回答

2

哇,你需要查找SQL INJECTION。此代碼不是,不安全。您需要在所有發佈的數據(例如下面)上最低限度使用mysql_real_escape_string()。

至於如何循環。如果這一切都是更新同一個表,你:如果你想要一個查詢未能攻破對方31或然而,許多留在的mysql_query

//do your connection and db select here 
for($i=1; $i <= 32; $i++) { 
    $sql = "gp='".mysql_real_escape_string($_POST["gp{$i}"])."'... 
    //mysql_query() here 
} 
//mysql_close() here 

你只wnat死()。否則,您可能會更優雅地失敗並忽略它,但留下一條消息。

您可能還想看看PDO,如果您有它可用,因爲它使用起來更簡單。

+0

它不應該是那麼: $ SQL = 「GP = GP +「」 .mysql_real_escape_string($ _ POST [ 「GP {$ I}」])「。」...... – MikeBeaudin87

+1

對不起,我試圖告訴你如何將$ i放入$ _POST以及如何轉義它。我並沒有試圖編譯它。如果這些都是數字,你也可以使用intval($ _ POST [「gp {$ i}」]] )而不是mysql_real_escape_string,它會強制它成爲一個數字,如果它不是數字,它將變成0。 –

+0

你的天才!!!謝謝工作很棒! – MikeBeaudin87

相關問題