2009-08-04 3 views
0

У меня есть строка:PHP/MySQL/Использование строк для выбора из базы данных

$string = "12,15,22"; 

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

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

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

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

Спасибо!

ответ

3

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

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

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

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

+0

Спасибо за помощь! – Dodinas

+1

Не забывайте дезинфицировать значения, если они поступают из любого пользовательского ввода. –

1

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

ВЫБОР usrFirst, usrLast ОТ tblusers ГДЕ USRID в (12, 15, 22);

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; – rezzif

+0

Итак, добавьте usrID = перед этим. С моей стороны это была простая, легко исправляемая ошибка. –

+0

Да, ты прав. извините за то, что так сурово! – rezzif

Смежные вопросы