1

私はこのコードを持っています:

if ($row['locked'] == 0) {
    mysql_query("UPDATE questions SET locked=1 WHERE id='".$topic_id."'") or die('not working');
}
if ($row['locked'] == 1){
    mysql_query("UPDATE questions SET locked=0 WHERE id='".$topic_id."'") or die('not working');
}

ロックをトグルするはずですが、1に設定しているだけです。その逆ではありません。

なんで?

4

3 に答える 3

3

なぜできないのですか:

    mysql_query("UPDATE questions SET locked = NOT locked WHERE id='".$topic_id."'") or die('not working');

これは列を直接切り替え、ステートメントlockedは必要ありません。if

于 2013-09-16T01:15:46.113 に答える
0

ところで、あなたはどこからあなたを手に入れます$row['locked']か?もっとコードを共有してください。

条件ステートメントを書く代わりに、クエリ内に変数を含めないのはなぜですか?

例えば:

$updateTo=!$row['locked'];

$query = "UPDATE questions SET locked='$updateTo' WHERE id='$topic_id'";

PS古い非推奨の代わりにmysqliまたは準備されたステートメントの使用を開始します。PDOmysql_query


または、問題を解決するには:

$row['locked']あなたを1に設定します。

これは、たとえば、ボタンのクリックでアクションをトリガーします。

PHP:

if(isset($_POST['submit'])) {

$row['locked'] = 1;

}

HTML:

<form action='<?php echo $_SERVER['PHP_SELF'];?>' method='post'>
<input type='submit' name='submit' value='post' />
</form>
于 2013-09-16T01:12:40.833 に答える