2012-03-11 11 views
2
<?php 
include_once"scripts/connect.php"; 

$sql = mysql_query("SELECT * FROM Tabletest ORDER BY Points DESC, PP DESC, Name ASC"); 

$pos=1; 
    while($pos <= 16){ 
    $row = mysql_fetch_array($sql); 
    $Points = $row['Points']; 
    $PP = $row['PP']; 
    $Name = $row['Name']; 

    mysql_query("UPDATE Tabletest SET thiswp=".$pos." WHERE Points=".$Points." PP=".$PP."  Name=".$Name.""); 
    echo "$pos $Points $Name $PP <br/> \n"; 
    $pos = $pos + 1; 
    } 
?> 

は、これは私がすなわちUPDATEのSET構文PHP

Position Points Name PP 
1  5  John 55 
2  4  Bob 54 
3  4  Jane 54 
4  3  Rob 50 
etc 

を期待しかし、それはTabletestを更新しないようにしてエコー。私はどこを台無しにしましたか? 乾杯 リッチ

+1

SQLインジェクションが検出されました –

+0

ごめんなさい、頭がおかしくなります.Sqlインジェクションに脆弱だとお考えですか?または "SQLインジェクションが検出されました"とエラーが発生しました – user1224642

+0

SQLインジェクションに脆弱です –

答えて

1

あなたは逃したAND

mysql_query("UPDATE Tabletest SET thiswp=".$pos." WHERE Points=".$Points." AND PP=".$PP." AND Name='".mysql_real_escape_string($Name)."'"); 

編集:また、名前が文字列だった場合だけで、それはそれの周りに「一重引用符」を持っている必要がありますし、上記のように、エスケープされています。同じことが文字列だったこと以外は同じです。

+0

おかげさまでありがとうございます - これはうまくいきました。 – user1224642

0

WHERE句。それは間違っています。

通常、論理演算子で構成されます。