1

私はこのようなテーブルを持っています:

id  subject        position         visible

1   Home               1               1
2   About us           2               1
3   Our partners       3               1
18  Products           4               1
19  Extra              5               0

次のように、position=2以降のすべての行に番号1を追加します。

id  subject        position         visible

1   Home               1               1
2   About us           2               1
3   Our partners       4               1
18  Products           5               1
19  Extra              6               0

私はこのように試しましたが、これは機能しません:

$row=mysql_query("SELECT * FROM table");
$count=mysql_num_rows($row);
$position=3;
$add=($position+1);
while($position<=$count)
{
    $sql="UPDATE subjects SET position=$add WHERE position=$position";
    mysql_query($sql);
    $add++;
    $position++;
}

上記のコードを適用すると、私のテーブルは次のようになります。

id  subject        position         visible

1   Home               1               1
2   About us           2               1
3   Our partners       6               1
18  Products           6               1
19  Extra              6               0

解決策はありますか?

4

3 に答える 3

11

なぜだけではないのですか?

UPDATE subjects SET position=position+1 WHERE position>2
于 2012-04-10T19:34:25.053 に答える
3
UPDATE subjects SET position=position + 1 WHERE position >= 3
于 2012-04-10T19:35:03.250 に答える
1
 update subjects set position = position +1 where position >2
于 2012-04-10T19:37:36.600 に答える