Тема: Вопрос по id в php/Mysql

Ответить в теме
Показано с 1 по 16 из 16
  1. Вверх #1
    Новичок
    Пол
    Мужской
    Возраст
    35
    Сообщений
    9
    Репутация
    11

    По умолчанию Вопрос по id в php/Mysql

    Имеется таблица users в безе. Я пишу скрипт регистрации, возник такой вопрос, на сделать что бы когда пользователь регистрировался, ему присваивался номер (id), по порядку. То есть там зарегистрировался пользователь Миша у него id 1, потом Саша, у него id 2.


    У меня вышло вот такое
    Код:
    mysql_query ("CREATE TABLE 'users' (id MEDIUMINT NOT NULL AUTO_INCREMENT,name CHAR(30) NOT NULL, PRIMARY KEY (id)) TYPE=MyISAM");
    
    
    $nik=$_POST['nik'];
    
    mysql_query (" INSERT INTO users (name) VALUES ('$nik') ");


    однако оно как бы игнорируется, то есть сама регистрация работает а id не работает, это поле просто пустое.

    Помогите мне плз.


  2. Вверх #2
    IDENTITY, быть может?

  3. Вверх #3
    Новичок
    Пол
    Мужской
    Возраст
    35
    Сообщений
    9
    Репутация
    11
    дело в том что очень плохо знаю php, это я как бы только начал учится, и вас не понял =)

  4. Вверх #4
    Посетитель Аватар для D>C
    Пол
    Мужской
    Возраст
    35
    Сообщений
    159
    Репутация
    26
    zower
    1.
    CHAR(30)
    имхо, varchar в данном случае использовать целесообразнее чтоли (если ты конечно не уверен, что у всех юзеров ники будут ровно по 30 символов)
    так что лучше varchar(30)
    2. поле не может быть пустым (оно NOT NULL)
    покажи лучше результат выборки из юзеров (select * from users);
    3.
    $nik=$_POST['nik'];
    лучше пропускать хотябы через mysql_real_escape_string()/htmlspecialchars()/trim() постовские данные
    и
    mysql_query (" INSERT INTO users (name) VALUES ('$nik') ");
    а зачем кавычки возле $nik ?
    Последний раз редактировалось D>C; 25.04.2009 в 19:43.

  5. Вверх #5
    Новичок
    Пол
    Мужской
    Возраст
    35
    Сообщений
    9
    Репутация
    11
    Все сделал, все равно поле id пустое....


    Может я ошибся при создании самой таблицы?


    Код:
    <?
    
    
    $table ="CREATE TABLE ".$table_user."
    
    
    (`id`  VARCHAR(255),
    
    `login` VARCHAR(255),
    
    `pass` VARCHAR(255) ,
    
    `mail` VARCHAR(255),
    
    PRIMARY KEY (`login`,`id`)
    
    )";
    
    
    
    ?>

  6. Вверх #6
    Посетитель Аватар для D>C
    Пол
    Мужской
    Возраст
    35
    Сообщений
    159
    Репутация
    26
    zower
    ну так тут у тебя уже
    `id` VARCHAR(255),
    вместо
    Код:
    id MEDIUMINT NOT NULL AUTO_INCREMENT
    это правильно было (а то что ты сейчас написал, вообще, пардон, бред)

    ты на локальной машине делаешь все?
    /если да, то зайди в mysql command line client
    и покажи результаты
    Код:
     use <your database>; show create table users
    вот допустим у меня:
    mysql> show create table users;
    +-------+-----------------------------------------------------------------------
    --------------------------------------------------------------------------------
    ---------------------+
    | Table | Create Table

    |
    +-------+-----------------------------------------------------------------------
    --------------------------------------------------------------------------------
    ---------------------+
    | users | CREATE TABLE `users` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `name` varchar(50) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 |
    +-------+-----------------------------------------------------------------------
    --------------------------------------------------------------------------------
    ---------------------+
    и при вставке
    mysql> INSERT INTO users(name) VALUES ('test_user');
    Query OK, 1 row affected (0.02 sec)

    mysql> select * from users;
    +----+-----------+
    | id | name |
    +----+-----------+
    | 1 | nik |
    | 2 | qwerty |
    | 3 | test_user |
    +----+-----------+
    3 rows in set (0.00 sec)
    Все как положено.

  7. Вверх #7
    Новичок
    Пол
    Мужской
    Возраст
    35
    Сообщений
    9
    Репутация
    11
    Я допер, вот все пашет


    Код:
    $table ="CREATE TABLE ".$table_user."
    
    
    (`id`  int auto_increment,
    
    `login` VARCHAR(255),
    
    `pass` VARCHAR(255) ,
    
    `mail` VARCHAR(255),
    
    PRIMARY KEY (`id`)
    
    )";

  8. Вверх #8
    Посетитель Аватар для EnemY
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    33
    Сообщений
    215
    Репутация
    14
    Да, легче всего это все делается через phpmyadmin )

  9. Вверх #9
    Посетитель
    Пол
    Мужской
    Возраст
    36
    Сообщений
    155
    Репутация
    23
    сразу видно - чувак прочитал статейку и уже считает себя программером.... ))))))

  10. Вверх #10
    Частый гость Аватар для CrazySquirrel
    Пол
    Мужской
    Возраст
    37
    Сообщений
    821
    Репутация
    111
    Люди... шо вы такое страшное делаете? id primary key, auto_increment в инсерт запрос вместо ID поставь 0

  11. Вверх #11
    Посетитель Аватар для Firewoolf
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    40
    Сообщений
    151
    Репутация
    38
    Цитата Сообщение от CrazySquirrel Посмотреть сообщение
    Люди... шо вы такое страшное делаете? id primary key, auto_increment в инсерт запрос вместо ID поставь 0
    Дополню твое сообщение примером:
    VALUES (0,'$nik')

  12. Вверх #12
    Частый гость Аватар для CrazySquirrel
    Пол
    Мужской
    Возраст
    37
    Сообщений
    821
    Репутация
    111
    Уже дополнять так дополнять
    mysql_query("Insert Into Users Values(0,'$nick');");
    не забываем что если добавляем значение из ассоциативного масива, добавляеться {}, или размыкаеться строка

  13. Вверх #13
    Посетитель Аватар для D>C
    Пол
    Мужской
    Возраст
    35
    Сообщений
    159
    Репутация
    26
    CrazySquirrel
    /offtop
    и не забываем тогшда уж писать
    Код:
    mysql_query("INSERT INTO Users VALUES(0, '$nick');");
    думаю, разница понятна
    / Carpe diem \
    \ Tempus curat omnia /

  14. Вверх #14
    Частый гость Аватар для CrazySquirrel
    Пол
    Мужской
    Возраст
    37
    Сообщений
    821
    Репутация
    111
    Цитата Сообщение от D>C Посмотреть сообщение
    CrazySquirrel
    /offtop
    и не забываем тогшда уж писать
    Код:
    mysql_query("INSERT INTO Users VALUES(0, '$nick');");
    думаю, разница понятна
    Некакой разницы функция mysql_query автоматически переводит служебные слова в верхний регистр

  15. Вверх #15
    Посетитель Аватар для D>C
    Пол
    Мужской
    Возраст
    35
    Сообщений
    159
    Репутация
    26
    ну я про кодинг стайл шоли говорил.
    Читабельней, имхо
    / Carpe diem \
    \ Tempus curat omnia /

  16. Вверх #16
    Частый гость Аватар для CrazySquirrel
    Пол
    Мужской
    Возраст
    37
    Сообщений
    821
    Репутация
    111
    Цитата Сообщение от D>C Посмотреть сообщение
    ну я про кодинг стайл шоли говорил.
    Читабельней, имхо
    Дело привычки.... я в нереестрозависимых языках, вобще пишу сплошняком...


Ответить в теме

Похожие темы

  1. Введение в PHP, MySQL
    от Anonymous в разделе Программирование
    Ответов: 81
    Последнее сообщение: 21.03.2015, 01:17
  2. Нужен ИНТЕРНЕТ программер ! (PHP, MySQL, Java, etc.)
    от demetrio13 в разделе Программирование
    Ответов: 3
    Последнее сообщение: 30.07.2009, 13:17
  3. Веб сервер Apache+PHP+MySQL+phpMyAdmin
    от XGX в разделе Программное обеспечение
    Ответов: 3
    Последнее сообщение: 27.03.2007, 14:36
  4. PHP+MySQL+Apache
    от slam в разделе Программирование
    Ответов: 11
    Последнее сообщение: 05.05.2006, 15:06
  5. пмогите!!!!! (php,mysql, while();)
    от Jeno в разделе Программирование
    Ответов: 7
    Последнее сообщение: 23.11.2004, 16:07

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения