Если я правильно понимаю ваш вопрос, если вы имеете дело с разделенными запятыми строками идентификационных номеров, вероятно, было бы проще всего сохранить их в этом формате. Причина в том, что вы можете использовать его в своем операторе SQL при запросе базы данных.
Я предполагаю, что вы хотите выполнить запрос SELECT
, чтобы получить пользователей, чьи идентификаторы были введены, верно? Вы хотите использовать оператор типа SELECT ... WHERE IN ...
, например:
// Get the ids the user submitted
$ids = $_POST['ids'];
// perform some sanitizing of $ids here to make sure
// you're not vulnerable to an SQL injection
$sql = "SELECT * FROM users WHERE ID IN ($ids)";
// execute your SQL statement
В качестве альтернативы, вы можете использовать explode
для создания массива каждого отдельного идентификатора, а затем выполнить цикл, чтобы можно было проверить некоторые значения, чтобы убедиться в их правильности, прежде чем использовать implode
, чтобы объединить их обратно в строка, которую вы можете использовать в своем выражении SELECT ... WHERE IN ...
.
Редактировать: Извините, забыл добавить: с точки зрения сохранения списка идентификаторов пользователей в базе данных, вы можете рассмотреть возможность хранения списка с разделителями-запятыми в виде строки с идентификатором сообщения, но это имеет недостатки (сложно сделать JOINS на других столах, если нужно). В качестве альтернативы, лучшим вариантом будет создание таблицы типов поиска, которая в основном состоит из двух столбцов: messageid
, userid
. Затем вы можете сохранить каждого индивидуума userid
против messageid
, например
messageid | userid
1 | 1
1 | 3
1 | 5
Преимущество этого подхода заключается в том, что вы можете использовать эту таблицу для объединения других таблиц (возможно, у вас есть отдельная таблица message
, в которой хранятся сведения о самом сообщении).
При использовании этого метода вы создадите новую запись в таблице сообщений, получите идентификатор обратно, затем разберете строку userids на отдельные части и, наконец, создадите оператор INSERT
для вставки данных с использованием отдельных идентификаторов. и идентификатор сообщения. Вам нужно будет разработать другие механизмы для обработки любого редактирования списка идентификаторов пользователей для сообщения, а также удаления.
Надеюсь, что это имеет смысл!