HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Блин ...
  #1  
Старый 04.08.2008, 12:45
still12
Познающий
Регистрация: 18.11.2007
Сообщений: 81
С нами: 9725873

Репутация: 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
 
Ответить с цитированием

  #2  
Старый 04.08.2008, 13:00
m0nsieur
Участник форума
Регистрация: 08.04.2008
Сообщений: 242
С нами: 9520978

Репутация: 229
По умолчанию

Теперь при добавлении надо писать в базу link_id пустым. Покажи код как добавляешь.
 
Ответить с цитированием

СПС
  #3  
Старый 04.08.2008, 13:06
still12
Познающий
Регистрация: 18.11.2007
Сообщений: 81
С нами: 9725873

Репутация: 6
По умолчанию СПС

Цитата:
Сообщение от m0nsieur  
Теперь при добавлении надо писать в базу link_id пустым. Покажи код как добавляешь.
Все спс .....работает )
 
Ответить с цитированием

И снова я
  #4  
Старый 07.08.2008, 12:30
still12
Познающий
Регистрация: 18.11.2007
Сообщений: 81
С нами: 9725873

Репутация: 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..
 
Ответить с цитированием

  #5  
Старый 07.08.2008, 13:05
m0nsieur
Участник форума
Регистрация: 08.04.2008
Сообщений: 242
С нами: 9520978

Репутация: 229
По умолчанию

Ты правильно понял, создаешь в таблице users поле user_id которое будет primary key, а в таблице link поле user_id оставляешь как есть или у тебя уже все создано и проблема с запросом?
 
Ответить с цитированием

  #6  
Старый 07.08.2008, 13:37
VDShark
Участник форума
Регистрация: 01.02.2007
Сообщений: 286
С нами: 10143686

Репутация: 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 определяют действия базы в случае удаления\обновление того элемента, на который ссылаемся (в данном случае мы выставили каскадное, т.е. если например удалится запись о юзере, то автоматически удалятся записи о его линках)
 
Ответить с цитированием

  #7  
Старый 18.08.2008, 13:51
scarm
Познающий
Регистрация: 04.04.2008
Сообщений: 70
С нами: 9526776

Репутация: 186
По умолчанию

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

  #8  
Старый 18.08.2008, 16:20
.:EnoT:.
Постоянный
Регистрация: 29.05.2007
Сообщений: 850
С нами: 9975266

Репутация: 1916


По умолчанию

scarm
Функцией LENGTH()
Код:
SELECT * FROM `table` ORDER by LENGTH(`password`)
Соответственно если нужно вывести только md5 без соли, то так
Код:
SELECT * FROM `table` WHERE LENGTH(`password`) = 32

Последний раз редактировалось .:EnoT:.; 18.08.2008 в 16:23..
 
Ответить с цитированием

  #9  
Старый 19.08.2008, 07:26
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
С нами: 10021597

Репутация: 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 |
 
Ответить с цитированием

  #10  
Старый 21.08.2008, 08:27
T-Rey
Постоянный
Регистрация: 04.07.2007
Сообщений: 375
С нами: 9923426

Репутация: 730
По умолчанию

Ребята, есть вопрос по удалению дублей в mysql.

Имеется 5 таблиц
Код:
table_1, table_2, table_3, table_4, table_5,
Дубли надо искать по первым двум совместно.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сетевой этикет (Перед тем, как задать вопрос хакеру) satana-fu Статьи 7 21.10.2009 07:40
Ответы на часто задаваемые вопросы + линки на статьи по SQL/XSS/PHP-инклуд Jokester Уязвимости 2 28.06.2009 00:19
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.