PHPでFaceBookのような受信ボックスメッセージングシステムを作成しています。このため、私はconversation
とinbox_messages
という2つのテーブルをMySQLデータベースに作成しました。mysqliがOR演算子を使って選択クエリを作成できない
id
user_one
user_two
:コンセプトは、ユーザーが別のユーザーとの会話を開始したいとき、私は4行を持っているユニークなIDを持つ
conversation
テーブルにレコードを挿入していますdate
私がしたいこと:ユーザーがログインするときに、ログインから作成されたユーザー名セッションを取得し、mysqliのプリペアドステートメントと選択クエリで、ユーザーがconversation
テーブルに別のものがあるかどうかを確認します。そうであれば、DIVに追加してください。
私が直面している問題は、クエリ文字列で、特にOR演算子では、動作しないようです。クエリで何をしたいのですか:user_one
が$_SESSION['username']
と等しい場合、または$_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();
}
http://php.net/manual/en/mysqli.error.phpとhttp://php.net/manual/en/function.error-reporting.php のリンクを参考にしてください。コード。 –
私はそれを行いますが、質問したいのですが、私の$クエリは正しいですか、多分書き方を変えるべきでしょう。初めてOR演算子を使うからです。 –
クエリ自体は大丈夫です。他のテーブルとの関係をモデリングするのではなく、そのテーブル内のuser_oneとuser_twoですが、とにかく....)。あなたが得た結果はどのようなもので、どのように期待通りのものからずれていますか? – VolkerK