[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблемка с добавлением записей.
Гость_Дима
$result_c = mysql_query("SELECT id FROM users");
$i=mysql_num_rows($result_c);
$id=$i+1;
$add="INSERT INTO users VALUES($id,'$surname','$name','$patronymic')";
$insert=mysql_query($add);
if (!$insert)
{
echo 'Технические проблемы, не добавить';
}
else
{
echo "Пользователь добавлен";
}
mysql_close($link);
}
?>


В общем вот часть кода. Она работает. но не совершенно) В общем если добавлять записи через поля формы и нажимая кнопку добавить, то записи добавляются. ид возрастают. то есть 1, 2, 3, 4, 5, и т.д. но вот незадача. Если удалить запись с ид 2 например. то после этого записи не добавляются. Как сделать чтобы при добавлении новая запись заполнила свободный ид? или 2, или дальше 5. не принципиально. запутался.



Спустя 3 минуты, 2 секунды (17.02.2011 - 13:26) Lenarfate написал(а):
у поля id в базе должен стоять флаг auto_increment

Спустя 12 минут, 20 секунд (17.02.2011 - 13:38) YVSIK написал(а):
вот он и стоит этот auto_increment
и чел об это и говорит что стоит auto_increment
а новая запись так и будет возростать не обращая внимания что
запись за номером 2 уже удалена
и присвот след номер 3 и будет
так
id-1
следущий
id-3


Спустя 14 минут, 26 секунд (17.02.2011 - 13:53) Guest написал(а):
да, поле ид auto_increment.
записи добавляются. но после того как удалю поле с ид 2 например. то больше не добавляются. что делать? Выдают мою ошибку типа, не добавить, технические проблемы =(

Спустя 8 минут, 45 секунд (17.02.2011 - 14:02) Guest написал(а):
$selectdb=mysql_select_db($db_name);
if(!$selectdb)
{
echo "We can't select database!";
exit;
}
else
{
$add="INSERT INTO users VALUES('','$surname','$name','$patronymic')";
$insert=mysql_query($add);
if (!$insert)
{
echo 'Технические проблемы, не добавить';
}
else
{
echo "Пользователь добавлен";
}
mysql_close($link);
}


вопрос решен. просто я заного начислял ид. и получалось что толи он занят, то ли еще что. Вопрос другой теперь, чисто ради своего интереса. Какие параметры поставить у поля ид, чтобы тот при добавлении записи брал первый свободный ид? вроде читал где то такое есть, как реализовать? спасибо. Допустим добавлено 5 записей. удалены 2 и 3. и при добавлении новой запись заняла ид 2, потом ид 3, и потом далее 6, 7 и т.д.. Спасибо

Спустя 47 секунд (17.02.2011 - 14:02) Lenarfate написал(а):
блин, у тебя же запрос неверный. странно, что вообще что-то добавляет. иди в мануал и читай про insert

Спустя 1 минута, 36 секунд (17.02.2011 - 14:04) Guest написал(а):
запрос верный. ну я так считаю. у меня из формы посредством $HTTP_POST_VARS
записываются в переменные, а из них в таблицу.

Спустя 40 минут, 36 секунд (17.02.2011 - 14:45) Lenarfate написал(а):
запрос неверный

Спустя 10 минут, 53 секунды (17.02.2011 - 14:56) Guest написал(а):
ну покажите как правильно?

INSERT INTO users ('',surname,name,patronymic) VALUES ('','$surname','$name','$patronymic')";


поидее все равнозначно

Спустя 1 минута, 1 секунда (17.02.2011 - 14:57) Guest написал(а):
ой,не правильно. поправка

INSERT INTO users ('',surname,name,patronymic) VALUE ('','$surname','$name','$patronymic')";


поидее все равнозначно

Спустя 5 минут, 4 секунды (17.02.2011 - 15:02) Guest написал(а):
Запрос абсолютно правильный. Используя
INSERT INTO users ('',surname,name,patronymic) VALUES ('','$surname','$name','$patronymic')";

мы создаем новую строку и заносим значения. при это на добавление у меня идет проверка на заполненность полей.
Используя если вы имеете ввиду
INSERT INTO users ('',surname,name,patronymic) VALUES ('','$surname','$name','$patronymic')";

мы можем заносить данные в специальные колонки.

У меня же заносятся во все колонки, мне нет необходимости указывать в какую что заносить. заносится по порядку.

Спустя 3 минуты, 18 секунд (17.02.2011 - 15:05) phatol написал(а):
Так. ввиду невозможности редактировать зарегистрировался.
в общем имелось ввиду:
Используя
INSERT INTO users VALUES('','$surname','$name','$patronymic')

мы создаем новую строку и заносим значения. Заполняются все поля подряд.При добавление у меня идет проверка на заполненность полей, и мне нет необходимости указывать в какие поля.
Используя код ниже, если вы имеете ввиду его
INSERT INTO users ('',surname,name,patronymic) VALUES ('','$surname','$name','$patronymic')


мы можем заносить данные в специальные колонки.

Еще раз: у меня же заносятся во все колонки, мне нет необходимости указывать в какую колонку что заносить. заносится подряд.

Так че там насчет мануала то?)

Спустя 1 час, 42 минуты, 52 секунды (17.02.2011 - 16:48) linker написал(а):
$add = "INSERT INTO users VALUES(0,'$surname','$name','$patronymic')";
и не парить себе мозг.

Спустя 18 минут, 57 секунд (17.02.2011 - 17:07) phatol написал(а):
ну можно и так. Ну скажите тогда почему я не имею право поставить '' вместо 0 ?
можно написать NULL. это тоже верно?

Спустя 55 секунд (17.02.2011 - 17:08) linker написал(а):
MySQL не дуб, он все поймет именно так как надо.

Спустя 15 секунд (17.02.2011 - 17:08) waldicom написал(а):
Цитата (phatol @ 17.02.2011 - 15:07)
я не могу 0 записывать. у меня первое поле идет id primary key auto_increment.

Тогда пишите туда NULL (без кавычек)

Спустя 5 минут, 33 секунды (17.02.2011 - 17:13) phatol написал(а):
спасибо. сообразил уже)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.