私はメールシステムを構築しています。しかし、私は "メールの削除"の部分に立ち往生しています。更新クエリの後に文が動作しない場合
私のデータベースには、真または偽に応答する2つの列(recdelとsenddel)があります。 ユーザーが「削除」を押すたびに、送信者または受信者に基づいて列が真に更新され、正しい人の受信トレイから非表示になります。 受取人と送付者の両方が削除を押したとき、私はデータベースからそれを削除したいと思います。両当事者がそれを削除してしまった場合に備えておく必要はありません。
両方の当事者が削除を押したときに問題が発生します。一方の当事者は、もう一度削除を押してデータベースから削除する必要があります(テスト目的で隠れた部分を削除してください)。
問題は、if文であるように見えます。更新クエリの後に3番目のif文が実行されることはありません。両方の列がtrueになると、3番目のif文が削除されると3番目のif文に移動します。
私はまた、最初の2つのif文の中に3番目のif文を入れてみましたが、同じ問題がまだあります。
どのような考えですか?
if(person == sender) {
$query = 'UPDATE `email` SET `senddel`="true" WHERE `id`='.$id.'';
}
if(person == recipent) {
$query = 'UPDATE `email` SET `recdel`="true" WHERE `id`='.$id.'';
}
if(recdel == 'true' && senddel == 'true'){
delfromdb
}
実際のコードは何ですか? 'recdel'はクエリの戻り値として定義されていますか?クエリのステータスをチェックしますか? – chris85
'person == sender'?それらは変数ではありません。それらは定義されていない定数で、phpは丁寧に自動的に変数化されます。また、未定義の変数でもあるので、 'null == null'を実行している可能性が最も高いでしょう。 –
「recdel」列または「senddel」列のいずれかに更新が行われるたびに、削除アクションを試みることが1つの方法です。例えば、 '' \ '電子メール\ 'どこ\'をrecdel \' AND \ 'senddel \ 'と' \ 'id \' =から削除しますか? ' – spencer7593