2012-03-11 4 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 - thiswp поля оставлено пустым. Где я перепутался? Cheers Rich

+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)."'"); 

Edit: Кроме того, только в случае, если имя было строка, она должна была «одинарные» и вокруг него были спасся, как указано выше. То же самое касается всего, что было строкой.

+0

Большое спасибо за помощь. Это сработало. – user1224642

0

Предложение WHERE. это не правильно.

Обычно он состоит из логических операторов.

Смежные вопросы