Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Генерация уникального значения столбца
 
 автор: Specter   (16.04.2007 в 13:25)   письмо автору
 
 

Научился создать таблицу.

CREATE_TABLE table(id int(2), name varchar(100)) 

теперь я не понимаю, как сделать например добавление анекдотов и чтоб для каждого анекдота был свой id?

   
 
 автор: cheops   (16.04.2007 в 13:40)   письмо автору
 
   для: Specter   (16.04.2007 в 13:25)
 

В этом случае лучше сделать поле id первичным ключём и снабдить его атрибутом AUTO_INCREMENT - передача значения NULL будет приводить к генерации уникального значения в поля id (равного максимальному значению id в столбце плюс 1).
CREATE TABLE `table` (
id INT(2) NOT NULL AUTO_INCREMENT ,
name VARCHAR(100),
PRIMARY KEY ( id ));

   
 
 автор: Specter   (16.04.2007 в 13:58)   письмо автору
 
   для: cheops   (16.04.2007 в 13:40)
 

Привет хеопс. :)
А что в твоем случае означает PRIMARY_KEY(id) ?

   
 
 автор: cheops   (16.04.2007 в 14:17)   письмо автору
 
   для: Specter   (16.04.2007 в 13:58)
 

Это означает, что поле id становится первичным ключом таблицы. Это нужно для того, чтобы можно было снабдить поле атрибутом AUTO_INCREMENT, который требует, чтобы поле было снабжено уникальным индексом.

   
 
 автор: Specter   (16.04.2007 в 14:17)   письмо автору
 
   для: Specter   (16.04.2007 в 13:58)
 

Почему такой код выдает ошибку?
 
<?php
$link 
mysql_connect('localhost''test''pass');
$query "CREATE_TABLE `test` (
id INT(2) NOT NULL AUTO_INCREMENT,
name VARCHAR(100),
PRIMARY_KEY( id ))"
;
mysql_select_db('news'$link);
if(! 
mysql_query($query$link)){
echo 
'Ошибка!'; }
mysql_close($link);
?>
.

   
 
 автор: cheops   (16.04.2007 в 14:18)   письмо автору
 
   для: Specter   (16.04.2007 в 14:17)
 

Хм... а почему везде стоят знаки вопроса?

   
 
 автор: Specter   (16.04.2007 в 14:46)   письмо автору
 
   для: cheops   (16.04.2007 в 14:18)
 

Убрал вопросики.

   
 
 автор: cheops   (16.04.2007 в 14:50)   письмо автору
 
   для: Specter   (16.04.2007 в 14:17)
 

Исправьте строку
<?php
echo 'Ошибка!';
?>

на
<?php
echo 'Ошибка!'.mysql_error();
?>

Что теперь выводится?

   
 
 автор: Specter   (16.04.2007 в 15:08)   письмо автору
 
   для: cheops   (16.04.2007 в 14:50)
 

You have an error in your
SQL syntax; check the manual
that corresponds to your
MySQL server version for the
right syntax to use near
'CREATE_TABLE `test` ( id INT(2
)
NOT NULL AUTO_INCREMENT, name
VARCHAR(100
), PRIM' at line 1

   
 
 автор: Specter   (16.04.2007 в 16:53)   письмо автору
 
   для: Specter   (16.04.2007 в 15:08)
 

Как исправить эту ошибку?

   
 
 автор: Trianon   (16.04.2007 в 17:24)   письмо автору
 
   для: Specter   (16.04.2007 в 16:53)
 

Подчеркивание между CREATE и TABLE - зачем?

   
 
 автор: Specter   (16.04.2007 в 17:21)   письмо автору
 
   для: Specter   (16.04.2007 в 15:08)
 

Сам исправил. :)
Щас не пойму, как добавить анекдот, чтобы ему свой ид присвоился.
INSERT INTO test VALUE(0,'test') 

если убрать "0", то выдает ошибку. Этим нулем я кажется задаю ид анекдота.
Когда создавал таблицу, я написал
 "CREATE TABLE `text` (
  `id` int(11) NOT NULL auto_increment,
  `text` text NOT NULL,
  KEY `id` (`id`)
) TYPE=MyISAM AUTO_INCREMENT=100 ;"; 

   
 
 автор: Trianon   (16.04.2007 в 17:25)   письмо автору
 
   для: Specter   (16.04.2007 в 17:21)
 


INSERT INTO test (name) VALUE('text')

   
 
 автор: Specter   (16.04.2007 в 17:28)   письмо автору
 
   для: Trianon   (16.04.2007 в 17:25)
 

(name) так и писать?

   
 
 автор: Trianon   (16.04.2007 в 17:40)   письмо автору
 
   для: Specter   (16.04.2007 в 17:28)
 

Судя по тому , что в последнем варианте поле у Вас называется text, писать надо
INSERT INTO test (`text`) VALUE('text')

   
 
 автор: Specter   (16.04.2007 в 18:00)   письмо автору
 
   для: Trianon   (16.04.2007 в 17:40)
 

Регистрация в чатах, форумах и т.д. делается по такому принципу? Делаются поля password, name, mail и т.д? И потом при авторизации проверяют совпадает ли введеный пароль с паролем, у которого ник - введенный в форме ник?

   
 
 автор: Trianon   (16.04.2007 в 18:09)   письмо автору
 
   для: Specter   (16.04.2007 в 18:00)
 

По какому - такому?
Пароли вообще-то стараются не хранить - хранят хеши.
При авторизации сравнивают хеш пароля с полем в таблице - в простейшем случае.

Какое отношение этот вопрос имеет к заявленному в теме?

   
 
 автор: Specter   (16.04.2007 в 18:15)   письмо автору
 
   для: Trianon   (16.04.2007 в 18:09)
 

Я просто так спросил. :)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования