列でpayment
構成される、というテーブルがあります- 、、、、、、、、、、、、、、。_ _ 私がやりたいのは、現在設定されているuserIDが、選択した行の列u1、u2 ...などのいずれかに格納されているIDと等しい場合に、有料列の1つの値を格納することです。bill ID
group ID
u1
u1paid
u2
u2paid
u3
u3paid
u4
u4paid
u5
u5paid
たとえば、現在のユーザーIDがに格納されているIDと等しい場合、の値をPHP変数u3
に格納したいと思います。u3paid
これを実現するためのSQLコマンドは何ですか?
解決策の試み:
SELECT u1paid if u1 = SessionID or u2paid if u2 = SessionID or
u3paid if u3 = SessionID or u4paid if u4 = SessionID or
u5paid if u5 = SessionID FROM payment WHERE billID = BILLID;
これが適切な構文ではないことは知っていますが、SQLのようなものに最も近いものです。
2番目の編集(twoleggedhorseの回答に基づく):
$payment = "SELECT CASE WHEN u1 = '".$_SESSION['ID']."' THEN u1paid WHEN u2 =
'".$_SESSION['ID']."' THEN u2paid WHEN u3 = '".$_SESSION['ID']."' THEN u3paid
WHEN u4 = '".$_SESSION['ID']."' THEN u4paid
WHEN u5 = '".$_SESSION['ID']."' THEN u5paid END AS PAID
FROM payment WHERE trackbill = '".$row['BID']."';"
その後、$payment ['PAID']でこのステートメントの値にアクセスしようとしていますが、まだ機能していません。私はまだこれで何かを台無しにしていますか?
Edit3:上記のコマンドは機能します。変数名の1つを台無しにしました:P