PHP / MySQL / использовать строку для выбора из базы данных

0

У меня есть строка:

 $string = "12,15,22";

Каждое из этих значений представляет usrID, и я бы хотел использовать их для выбора строк, связанных с строкой $.

Что-то вроде этого:

SELECT usrFirst, usrLast FROM tblusers WHERE usrID = 12 OR 15 OR 22.

Теперь переменная $изменяется постоянно, а иногда может быть и другое количество идентификаторов. Например, иногда 3, иногда 4.

Спасибо!

Теги:
select

3 ответа

3
Лучший ответ

используйте IN, хотя он очень медленный, если у вас много номеров:

SELECT usrFirst, usrLast FROM tblusers WHERE usrID IN ($string)

W3Schools содержит больше информации о IN.

Если у вас много номеров, посмотрите здесь для получения информации о том, как ускорить это.

  • 0
    Спасибо за помощь!
  • 1
    Не забывайте очищать значения, если они поступают из любой формы пользовательского ввода.
1

вы также можете сделать:

$string = str_replace(',',' OR usrID=',$string);
mysql_query('SELECT usrFirst, usrLast FROM tblusers WHERE usrID='.$string);
  • 0
    -1 В итоге получается SELECT usrFirst, usrLast FROM tblusers WHERE 12 ИЛИ usrID = 15 ИЛИ usrID = 22;
  • 0
    Так что добавьте usrID = перед этим. Это была простая, легко исправимая ошибка с моей стороны.
Показать ещё 1 комментарий
1

вы можете сделать что-то вроде:

SELECT usrFirst, usrLast FROM tblusers WHERE usrID в (12, 15, 22);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню