Задать вопрос
@scorp2007

Mysqli запрос WHERE IN, как правильно?

Приветствую, вот есть у меня такой код на php, он работает хорошо и возвращается что нужно, а именно выбирает из базы лучших по очкам 50 участников, к тому же только тех у кого id больше 10:

if ($stmt = $mysqli->query('SELECT * FROM `stat` WHERE `uid`>10 ORDER BY `score` DESC LIMIT 50')) {
    // выводим данные
    echo '<?xml version="1.0" encoding="UTF-8"?><response>';
    while($row = $stmt->fetch_assoc()){
        echo '<item><uid>'.$row['uid'].'</uid><score>'.$row['score'].'</score></item>';
    }
    echo '</response>';
    }
    
    // выполнение запроса
    $stmt->execute();


Теперь сам вопрос, есть переменная $user_uids='43, 83, 22' , мне нужно сделать такой же запрос как и первый но только чтоб он мне вернул записи у которых uid такой же как user_uids, т.е. если uid равен 43 или 83 или 22 - то он бы возвращал эти записи, раньше все просто я делал так:

$sql = mysql_query("SELECT * FROM `$table_name` WHERE `uid` IN ($user_uids) ORDER BY `score` DESC LIMIT 50");


Но с mysqli это не работает, устаревший это вариант. В гугле нашел пару топовых примером, попробовал - не работают. Скажите плиз кто знает как сделать? Спасибо.
  • Вопрос задан
  • 191 просмотр
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@art_karetnikov
Лучший мой проект: Мобильный банк Сбербанка РФ.
Коллега, вы что-то путаете. Вариант uid in (43, 83, 22) - есть правоверный в sql. Отсюда - не работает у вас что-то php. Например, преобразование, потому как '43, 83, 22' != 43, 83, 22
Ответ написан
Ваш ответ на вопрос

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

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