if/elseクエリを実行する最善の方法を見つけることができない状況に遭遇しています。まず、SQL文でif/elseを実行できるかどうかはわかりません。以下は現在私が持っているものです。このプロセスを通じて、私はクエリの周りにif/elseを追加しました。 $profile_viewer
に等しい - 私はuser_id
(上記に記載されていない変数データベース列)の値が作りたいINSERTクエリで/ elseがある場合
それ以外$user_id
に等しい場合、基本的に私は何をしたいのか最初のクエリを実行され、それ以外を実行します。だから、
、私はこれを行うことができれば一言で言えば、私はちょうど私の実行を変更する方法がわからないです:
他のクエリのパラメータであることを$profile_viewer
を含めること。
$select_img_stmt->execute(array($user_id));
$user_id = (isset($_SESSION['user']) ? $_SESSION['user'] : "");
$profile_viewer = $_GET['user'];
if ($profile_viewer == $user_id) {
$img_select_sql = "
SELECT *
FROM profile_img
WHERE user_id = ?
ORDER BY id DESC
LIMIT 1
";
}
else {
//echo "This is not your image";
$img_select_sql = "
SELECT *
FROM profile_img
WHERE user_id = ?
ORDER BY id DESC
LIMIT 1
";
}
if ($select_img_stmt = $con->prepare($img_select_sql)) {
$select_img_stmt->execute(array($user_id));
更新されたコード:1つのクエリですべてこれを行うことについて
$user_id = (isset($_SESSION['user']) ? $_SESSION['user'] : "");
$profile_viewer = $_GET['user'];
if ($profile_viewer == $user_id) {
/*$img_select_sql = "
SELECT *
FROM profile_img
WHERE user_id = ?
ORDER BY id DESC
LIMIT 1
";*/
$img_select_sql = "
SELECT i.*
FROM profile_img i
WHERE user_id IN (?, ?)
ORDER BY id DESC
LIMIT 1;
";
}
else {
//echo "This is not your image";
echo $profile_viewer;
}
if ($select_img_stmt = $con->prepare($img_select_sql)) {
$select_img_stmt->execute(array($user_id, $profile_viewer));
これは問題ありません。セッションとGET配列に値が含まれていますか? PHPとクエリを介してすべてのエラー?これを実行するとどうなりますか? –
@ Fred-ii-それはifで動作しますが、elseでは動作しません。 '$ user_id'と' $ profile_viewer'の2つの異なるパラメータが必要です – Paul
私の質問に何が間違っているのかよくわかりません。 – Paul