Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

04.08.2008, 12:45
|
|
Познающий
Регистрация: 18.11.2007
Сообщений: 81
Провел на форуме: 249705
Репутация:
6
|
|
Блин ...
Сообщение от m0nsieur
Установи полю link_id дополнительное значение auto_increment через phpmyadmin.
Примерно так можно через sql сделать:
Код:
ALTER TABLE `table` CHANGE `link_id` `link_id` INT( 11 ) NOT NULL AUTO_INCREMENT)
ALTER TABLE `table` ADD UNIQUE (`link_id`)
Так полю значения задал но немного подругому .....но теперь при добавлении данных в базу через форму вылезает Column count doesn't match value count at row 1
|
|
|

04.08.2008, 13:00
|
|
Участник форума
Регистрация: 08.04.2008
Сообщений: 242
Провел на форуме: 2230263
Репутация:
229
|
|
Теперь при добавлении надо писать в базу link_id пустым. Покажи код как добавляешь.
|
|
|

04.08.2008, 13:06
|
|
Познающий
Регистрация: 18.11.2007
Сообщений: 81
Провел на форуме: 249705
Репутация:
6
|
|
СПС
Сообщение от m0nsieur
Теперь при добавлении надо писать в базу link_id пустым. Покажи код как добавляешь.
Все спс .....работает )
|
|
|

07.08.2008, 12:30
|
|
Познающий
Регистрация: 18.11.2007
Сообщений: 81
Провел на форуме: 249705
Репутация:
6
|
|
И снова я
Есть две таблицы users и link
В таблице users поля : user_id, name, pass
В таблице link user_id, link
При регистрации пользователя ему выдается id. Ну так вот нужно чтобы при входе пользователя на сайт по ему уникальному ид из таблицы link выдавалась ссылка введенная им при регистрации .....
Я так понимаю что user_ id в первой таблице должен иметь иметь значение PR, а user_id во второй таблице FK ? Я прав ...а как это сделать задать FK?

Последний раз редактировалось still12; 07.08.2008 в 12:34..
|
|
|

07.08.2008, 13:05
|
|
Участник форума
Регистрация: 08.04.2008
Сообщений: 242
Провел на форуме: 2230263
Репутация:
229
|
|
Ты правильно понял, создаешь в таблице users поле user_id которое будет primary key, а в таблице link поле user_id оставляешь как есть или у тебя уже все создано и проблема с запросом?
|
|
|

07.08.2008, 13:37
|
|
Участник форума
Регистрация: 01.02.2007
Сообщений: 286
Провел на форуме: 804931
Репутация:
526
|
|
m0nsieur думаю он разобрался как сделать первичный ключ, и его интересует как сделать внешний  Видимо хочется человеку ссылочную целостность в БД поддерживать.
still12 внешний ключ создается след. образом:
Если у тебя уже созданыы таблицы, то соответственно нам необхоимо расширить их структуру
ALTER TABLE `link` ADD FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
Причем если users_id является первичным ключем, то его уточнение после REFERENCES можно опустить, т.е.
REFERENCES `users`
а ON DELETE CASCADE ON UPDATE CASCADE определяют действия базы в случае удаления\обновление того элемента, на который ссылаемся (в данном случае мы выставили каскадное, т.е. если например удалится запись о юзере, то автоматически удалятся записи о его линках)
|
|
|

18.08.2008, 13:51
|
|
Познающий
Регистрация: 04.04.2008
Сообщений: 70
Провел на форуме: 666974
Репутация:
186
|
|
Исходная: в строке sql таблицы
Код:
password(varchar(100))
введены разные типы хэшей (MD5 и MD5:соль), отличающиеся, соответственно, длиной строки и символом-разделителем :
Код:
3b8f3744bf2a000023e470318c315543
a9b8f2d3e1cb0000c031744208939aaa:8XA0DTaXVWJ73X86
d4fa96a300000f764f90a7be296e5cdb
c4f884f2aed00000740c251a973b1e96
5d7c7d6f98be78000003ae6f707ebe59:WZyGIinDH5adLQEv
Поскажите, как сформулировать правильно запрос select, чтобы выводились только md5 строки либо шла сортировка по длине строки (сначала чтобы выводились md5 а потом соленые md5).
Заранее спасибо
|
|
|

18.08.2008, 16:20
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
scarm
Функцией LENGTH()
Код:
SELECT * FROM `table` ORDER by LENGTH(`password`)
Соответственно если нужно вывести только md5 без соли, то так
Код:
SELECT * FROM `table` WHERE LENGTH(`password`) = 32
Последний раз редактировалось .:EnoT:.; 18.08.2008 в 16:23..
|
|
|

19.08.2008, 07:26
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
Можно еще, к примеру, разделить поле password на две колонки - в первой находится хэш, во второй - соль или NULL, если хэш несоленый.
Код:
mysql> select substring_index(password, ':', 1), case when locate(':', password) > 0 then substring(password, locate(':', password)+1) else NULL end from table;
| 3b8f3744bf2a000023e470318c315543 | NULL |
| a9b8f2d3e1cb0000c031744208939aaa | 8XA0DTaXVWJ73X86 |
| d4fa96a300000f764f90a7be296e5cdb | NULL |
| c4f884f2aed00000740c251a973b1e96 | NULL |
| 5d7c7d6f98be78000003ae6f707ebe59 | WZyGIinDH5adLQEv |
|
|
|

21.08.2008, 08:27
|
|
Moderator - Level 7
Регистрация: 04.07.2007
Сообщений: 375
Провел на форуме: 2670099
Репутация:
730
|
|
Ребята, есть вопрос по удалению дублей в mysql.
Имеется 5 таблиц
Код:
table_1, table_2, table_3, table_4, table_5,
Дубли надо искать по первым двум совместно.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|