[sql] Вопросы по БД

Discussion in 'PHP' started by FraiDex, 25 Feb 2008.

Thread Status:
Not open for further replies.
  1. mad_xakep

    mad_xakep Banned

    Joined:
    10 Apr 2007
    Messages:
    190
    Likes Received:
    68
    Reputations:
    0
    это я сделал а как сделать чтоб выводил либо одну запись или 5
     
  2. Fuckel

    Fuckel Banned

    Joined:
    16 Jan 2008
    Messages:
    274
    Likes Received:
    59
    Reputations:
    6
    если разом пять записей то должно получаться, как писали выше, с помощью Limit 5
     
  3. mad_xakep

    mad_xakep Banned

    Joined:
    10 Apr 2007
    Messages:
    190
    Likes Received:
    68
    Reputations:
    0
    не получается
     
  4. Fuckel

    Fuckel Banned

    Joined:
    16 Jan 2008
    Messages:
    274
    Likes Received:
    59
    Reputations:
    6
    выкладывай код как используешь с mysql_fetch_array()
     
  5. 5triker

    5triker Elder - Старейшина

    Joined:
    5 Apr 2007
    Messages:
    62
    Likes Received:
    41
    Reputations:
    1
    вставь в цикл , должно работать
    Code:
    $i++;
    if ($i==5){break;} //вместо 5 нужное число
    
     
    1 person likes this.
  6. mad_xakep

    mad_xakep Banned

    Joined:
    10 Apr 2007
    Messages:
    190
    Likes Received:
    68
    Reputations:
    0
    вот это работает спасибочки
     
  7. mff

    mff Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    Help! Нужет путёвый скрипт выборки из базы порциями. Внизу ссылочки 1,2,3,4... Написал своими силами, но что то мне не нравиться :( Help!
     
  8. Корвин

    Корвин Elder - Старейшина

    Joined:
    26 Feb 2007
    Messages:
    256
    Likes Received:
    31
    Reputations:
    3
    где ссылочки?
     
  9. still12

    still12 Elder - Старейшина

    Joined:
    18 Nov 2007
    Messages:
    74
    Likes Received:
    5
    Reputations:
    -1
    ХЫ

    В таблице имеются следуюшие поля :
    link_id- ID ссылки
    link- сюда вносится ссылка введенная пользователем с формы
    Так вот не скажете как сделать чтоюбы при добавлении ссылки автоматически создавался ее уникальный нормер в link_id.
    Например
    если ссылка была добавлена первой то id должен быть 1
    если ссылка добавлена второй то id должен быть два .... и т.д.
     
    #229 still12, 4 Aug 2008
    Last edited: 4 Aug 2008
  10. m0nsieur

    m0nsieur Elder - Старейшина

    Joined:
    8 Apr 2008
    Messages:
    223
    Likes Received:
    69
    Reputations:
    10
    Установи полю link_id дополнительное значение auto_increment через phpmyadmin.
    Примерно так можно через sql сделать:

    Code:
       
    ALTER TABLE `table` CHANGE `link_id` `link_id` INT( 11 ) NOT NULL AUTO_INCREMENT)
    
    ALTER TABLE `table` ADD UNIQUE (`link_id`) 
    
     
    #230 m0nsieur, 4 Aug 2008
    Last edited: 4 Aug 2008
    1 person likes this.
  11. still12

    still12 Elder - Старейшина

    Joined:
    18 Nov 2007
    Messages:
    74
    Likes Received:
    5
    Reputations:
    -1
    Блин ...

    Так полю значения задал но немного подругому .....но теперь при добавлении данных в базу через форму вылезает Column count doesn't match value count at row 1
     
  12. m0nsieur

    m0nsieur Elder - Старейшина

    Joined:
    8 Apr 2008
    Messages:
    223
    Likes Received:
    69
    Reputations:
    10
    Теперь при добавлении надо писать в базу link_id пустым. Покажи код как добавляешь.
     
    1 person likes this.
  13. still12

    still12 Elder - Старейшина

    Joined:
    18 Nov 2007
    Messages:
    74
    Likes Received:
    5
    Reputations:
    -1
    СПС

    Все спс .....работает )
     
  14. still12

    still12 Elder - Старейшина

    Joined:
    18 Nov 2007
    Messages:
    74
    Likes Received:
    5
    Reputations:
    -1
    И снова я

    Есть две таблицы users и link
    В таблице users поля : user_id, name, pass
    В таблице link user_id, link
    При регистрации пользователя ему выдается id. Ну так вот нужно чтобы при входе пользователя на сайт по ему уникальному ид из таблицы link выдавалась ссылка введенная им при регистрации .....
    Я так понимаю что user_ id в первой таблице должен иметь иметь значение PR, а user_id во второй таблице FK ? Я прав ...а как это сделать задать FK?

    [​IMG]
     
    #234 still12, 7 Aug 2008
    Last edited: 7 Aug 2008
  15. m0nsieur

    m0nsieur Elder - Старейшина

    Joined:
    8 Apr 2008
    Messages:
    223
    Likes Received:
    69
    Reputations:
    10
    Ты правильно понял, создаешь в таблице users поле user_id которое будет primary key, а в таблице link поле user_id оставляешь как есть или у тебя уже все создано и проблема с запросом?
     
  16. VDShark

    VDShark Elder - Старейшина

    Joined:
    1 Feb 2007
    Messages:
    260
    Likes Received:
    158
    Reputations:
    62
    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 определяют действия базы в случае удаления\обновление того элемента, на который ссылаемся (в данном случае мы выставили каскадное, т.е. если например удалится запись о юзере, то автоматически удалятся записи о его линках)
     
  17. scarm

    scarm Elder - Старейшина

    Joined:
    4 Apr 2008
    Messages:
    74
    Likes Received:
    48
    Reputations:
    9
    Исходная: в строке sql таблицы
    Code:
    password(varchar(100))
    введены разные типы хэшей (MD5 и MD5:соль), отличающиеся, соответственно, длиной строки и символом-разделителем :
    Code:
    3b8f3744bf2a000023e470318c315543
    a9b8f2d3e1cb0000c031744208939aaa:8XA0DTaXVWJ73X86
    d4fa96a300000f764f90a7be296e5cdb
    c4f884f2aed00000740c251a973b1e96
    5d7c7d6f98be78000003ae6f707ebe59:WZyGIinDH5adLQEv
    
    Поскажите, как сформулировать правильно запрос select, чтобы выводились только md5 строки либо шла сортировка по длине строки (сначала чтобы выводились md5 а потом соленые md5).
    Заранее спасибо
     
  18. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    scarm
    Функцией LENGTH()
    Code:
    SELECT * FROM `table` ORDER by LENGTH(`password`)
    Соответственно если нужно вывести только md5 без соли, то так
    Code:
    SELECT * FROM `table` WHERE LENGTH(`password`) = 32
     
    #238 .:EnoT:., 18 Aug 2008
    Last edited: 18 Aug 2008
    1 person likes this.
  19. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Можно еще, к примеру, разделить поле password на две колонки - в первой находится хэш, во второй - соль или NULL, если хэш несоленый.
    Code:
    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 |
    
     
    1 person likes this.
  20. T-Rey

    T-Rey Elder - Старейшина

    Joined:
    4 Jul 2007
    Messages:
    302
    Likes Received:
    218
    Reputations:
    18
    Ребята, есть вопрос по удалению дублей в mysql.

    Имеется 5 таблиц
    Code:
    table_1, table_2, table_3, table_4, table_5,
    Дубли надо искать по первым двум совместно.
     
Thread Status:
Not open for further replies.