Как добавить инфрон 0 с автоматическим приращением в базе данных MySQL - PullRequest
0 голосов
/ 24 августа 2011

Моя проблема довольно проста. У меня есть система входа, построенная с использованием php, базы данных mysql и ajax. Все работало до сегодняшнего дня, когда я обнаружил очень потенциальную проблему, которая может полностью запутать систему. У каждого пользователя в базе данных есть идентификатор, который автоматически генерируется путем установки автоинкремента для столбца идентификатора, чтобы дать ему уникальный идентификатор. Теперь моя проблема в том, что, например, моя система чата пытается отобразить всех пользователей в комнате. Ну, идентификатор для моего первого пользователя равен 1, а идентификатор для второго пользователя - 104. Итак, php извлекает все идентификаторы пользователей из базы данных, которая хранится в этом формате: user1id,user2id,user3id и так далее. Но когда php ищет эти идентификаторы для идентификатора # 1, чтобы увидеть, существует ли он, он находит 1 в идентификаторе 104. Вот где начинается проблема. Чувствуя, что пользователь уже подключен, php соответствующим образом меняет запись и обновляет список пользователей следующим образом: 04,1. Это было 104,1 раньше. Теперь скрипт пытается найти имя пользователя для id # 04, который не существует. Поэтому указан неправильный список пользователей в комнате. Теперь самое разумное решение этого вопроса, я думаю, состоит в добавлении 0 перед более короткими идентификаторами, поэтому вместо 104,1 это 104,001. Но как именно это сделать с автоматическим приращением? Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 24 августа 2011

При поиске пользователей со списком, разделенным запятыми, попробуйте использовать функцию explode (), чтобы превратить список в массив, а затем выполнить поиск с помощью функции in_array ()

1 голос
/ 24 августа 2011

Вы можете сделать то, что просите, сделав поле id "заполненным нулями".

Но есть много лучших подходов к этой проблеме ...

0 голосов
/ 24 августа 2011

Спасибо всем, но я нашел решение. Я бы получил самое длинное значение в массиве после разнесения и использовал бы str_pad, чтобы добавить достаточно 0 в конец каждого значения в массиве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...