sibit11
@sibit11

Правильное ли условие в функции PHP?

Занимаюсь доработкой приложения, возникла проблема, при отмене заказа должен браться iFeedID заказа и ставить значение vUserView = delete, в строке таблицы, где данный iFeedID совпадает.

На деле же, если в списке несколько строк (то есть несколько активных заказов) и отменяется один из них (идет вызов user/deleteRide), то выставляется значение vUserView = delete для всех строк, где оно не стоит. То есть при отмене одного заказа, отменяются все. Не могу найти ошибку, так как в php я слабо ориентируюсь.

В клиенте значение при пост-запросе iFeedID такое, какое оно должно быть.

Код из клиента
+(void)deleteRide:(NSString *)iFeedID block:(WebCallBlock)block{
    [manager POST:@"user/deleteRide" parameters:@{@"iFeedID":iFeedID} success:^(AFHTTPRequestOperation *operation, id responseObject) {

Код user.php
function deleteRide () {
        $iFeedID = intVal($this->input->get_post("iFeedID"));
        $sql = "UPDATE `ridehost`.`tbl_feed` SET `vUserView` = 'delete' WHERE `tbl_feed`.`iFeedID` = ".$iFeedID." AND `vUserView` = 'public' OR `vUserView` = 'friends' OR `vUserView` = 'courier' OR `vUserView` = 'food';";
  • Вопрос задан
  • 162 просмотра
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
UPDATE `ridehost`.`tbl_feed`
SET `vUserView` = 'delete'
WHERE `tbl_feed`.`iFeedID` = ".$iFeedID." AND
    `vUserView` IN ('public', 'friends', 'courier', 'food');


Ну или уж если сильно хочется пописать лишнего:
UPDATE `ridehost`.`tbl_feed`
SET `vUserView` = 'delete'
WHERE `tbl_feed`.`iFeedID` = ".$iFeedID." AND (`vUserView` = 'public' OR `vUserView` = 'friends' OR `vUserView` = 'courier' OR `vUserView` = 'food');
Ответ написан
Комментировать
mrKhatter
@mrKhatter
программист
Убирайте все ИЛИ(OR) и юзайте с миром! ;)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы