Я пытаюсь написать, если стемент
if(($result["from_id"] OR $result["to_id"]) == $_SESSION['user_id']) {
//DO SOMETHING
}
else {
// redirect
}
Это правильный способ узнать, имеет ли какой-либо из 2 столбцов, извлеченных из определенной строки, одинаковое значение текущего зарегистрированного сеанса.
Это тоже возможно?
if($result["from_id"] || $result["to_id"] == $_SESSION['user_id']) {
//DO SOMETHING
}
else {
// redirect
}
Нет, в PHP вы должны сделать что-то вроде:
if ( in_array( $_SESSION['user_id'], array($result["from_id"], $result["to_id"]) ) )
или написать отдельные сравнения для каждого условия (2 в этом случае in_array
метод масштабируется немного лучше).
Если результаты приходят из MySQL, вы можете использовать IN
там прямо так же.
Ваше сравнение оценивается примерно так, при условии, что эти значения установлены …
if( (true || true) == $_SESSION['user_id']){ ... }
Вам нужно сравнить конкретно …
if( $result["from_id"] == $_SESSION['user_id']|| $result["to_id"] == $_SESSION['user_id']){ ... }
Таким образом, вы можете понять, почему первый сет не будет делать то, что вы ожидаете.
Но, как сказал jeroen, вы можете запустить это непосредственно в запросе.
SELECT * FROM `table` WHERE `from_id` = '$_SESSION['user_id']' OR `to_id` = '$_SESSION['user_id']'
за исключением, очевидно, избегать этого должным образом в зависимости от интерфейса базы данных, который вы используете