我遇到了一种情况,我无法弄清楚运行if/else查询的最佳方式。首先,我不确定我是否可以用sql语句运行if/else。以下是我目前拥有的。通过这个过程,我只在查询周围添加了if/else。If/else for INSERT查询
基本上就是我想要做的是运行第一个查询,如果它等于$user_id
否则,运行一样,这是我想要做user_id
的价值 - 等于$profile_viewer
(数据库列不是上面列出的变量)。
因此,概括地说,如果我能做到这一点,我只是不知道如何修改我的执行:
要包括$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));
更新的代码:
$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中起作用,但不起作用。我需要在执行中有两个不同的参数,'$ user_id'和'$ profile_viewer' – Paul
不知道我的问题出了什么问题。 – Paul