FaceBook のような受信トレイ メッセージング システムを PHP で作成しています。このため、MySQL データベースに と という 2 つのテーブルを作成しましconversation
たinbox_messages
。
概念は、ユーザーが別のユーザーとの会話を開始したいときに、conversation
4 つの行を持つ一意の ID を持つテーブルにレコードを挿入することです。
id
user_one
user_two
date
私がしたいこと: ユーザーがログインすると、ログインから作成されたユーザー名セッションを取得し、mysqli 準備済みステートメントと選択クエリを使用して、ユーザーがconversation
別のテーブルにいるかどうかを確認します。その場合は、DIV に追加します。
私が直面している問題は、クエリ文字列、特に OR OPERATOR ではうまくいかないようだということです。クエリでやりたいことは次のとおりです。 if user_one
is equal with $_SESSION['username']
OR user_two
is equal with the same $_SESSION['username']
、したがって、ログインしているユーザーがテーブルの行user_one
または行user_two
に会話IDを追加する場合。
$par1 = $_SESSION['username'];
$par2 = $_SESSION['username'];
//$par1 and $par2 holds the same name
$query = "SELECT id FROM conversation WHERE user_one = ? OR user_two = ?";
if ($stmt = $mysqli->prepare($query)) {
$stmt->bind_param("ss", $par1, $par2);
$stmt->execute();
$stmt->bind_result($id);
$stmt->fetch();
if ($stmt->num_rows == 1) {
echo $id;
}
$stmt->free_result();
$stmt->close();
}