0

簡単な解決策があるように感じますが、どこにも見つかりません。

while() ループがあり、各ループの開始時に、MYSQL データベースから取得した数値から 1 を減算します。しかし、何らかの理由で、それは 0 で停止します。データベースから取得した値が 0 または負の数である場合、数値を負にする必要があります。

    //Get members
$select = mysql_query("SELECT * FROM members") or die(mysql_error());

//Start the loop
while($members= mysql_fetch_row($select)){

//Get limit
$limit = $members['limit'];
    $newlimit = $limit - 1;

mysql_query("UPDATE `members` SET `limit` = '".$newlim."' WHERE `email`='".$members['email']."'");
}

何かアドバイス?このコードは、値が 0 になるまで正常に機能します。しかし、減算を続けるために必要です。

前もって感謝します!ブランドン

編集済み: 上記のコードを更新しました。エラーが発生しました

4

2 に答える 2

2

私の推測では、youtlimit列はUNSIGNED INT. 符号なしの数値は、符号付きの数値の 2 倍の大きさにすることができますが、負の値を持つことはできません (したがって、符号なし)。

ALTER TABLE ステートメントを使用して列を に変更できますが、フィールドに格納されている値のいずれかが2147483647より大きい場合(符号付き INT に変更した場合)、これらの値は保持されないINTため、注意が必要です。 .limit

于 2013-03-05T15:29:25.460 に答える
0

余分な = 記号を削除します

$newlimit = $limit - 1;

そしてあなた$newlim$newlimitSQL文で

また、ループやphpを使用せずに、単一のSQLステートメントで同じことを実行できることに注意してください。

UPDATE `members` SET `limit`=`limit`-1
于 2013-03-05T15:29:19.330 に答える