Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2010, 19:43   #1
mrgrudge
Форумчанин
 
Аватар для mrgrudge
 
Регистрация: 20.02.2010
Сообщений: 229
По умолчанию тоже что id

вопрос в следующем, вот есть простой запрос
PHP код:
INSERT  INTO  `table` (  `id` ,  `list` ,    `text`  ) 
VALUES (  '',  '$list',  '$text' ); 
в этой таблице есть некоторое количество записей, и вот как описать в рнр чтоб в поле list вносилось тоже что и в поле id? ведь mysql смотрит какой последний id есть в таблице добавляет к нему 1 и записывает в поле id (если auto_increment установлен,а он установлен)....может это какой то запрос на последнюю строку в таблице с ее последующим увелечением а может еще что-то...вообщем я в тупике..
думай как баг, действуй как баг, и ты найдешь баг )
mrgrudge вне форума Ответить с цитированием
Старый 05.10.2010, 19:51   #2
arvitaly
Пользователь
 
Аватар для arvitaly
 
Регистрация: 01.08.2010
Сообщений: 51
По умолчанию

Код:
INSERT  table (  `id` ,  `list` ,    `text`  ) 
select 0, id,  '$text' from table order by id desc limit 0,1
arvitaly вне форума Ответить с цитированием
Старый 05.10.2010, 20:55   #3
Никки
Форумчанин Подтвердите свой е-майл
 
Аватар для Никки
 
Регистрация: 20.11.2007
Сообщений: 500
По умолчанию

Код:
 SELECT max( `id` ) FROM `table`
дальше как обычно:
Код:
$id = mysql_fetch_array(mysql_query("SELECT max( `id` ) FROM `table`"));
$id = $id[0]+1;
И теперь ваш запрос:
Код:
INSERT  INTO  `table` (  `id` ,  `list` ,    `text`  ) 
VALUES (  '$id',  '$id',  '$text' );
Никки вне форума Ответить с цитированием
Старый 05.10.2010, 21:16   #4
arvitaly
Пользователь
 
Аватар для arvitaly
 
Регистрация: 01.08.2010
Сообщений: 51
По умолчанию

Цитата:
$id = mysql_fetch_array(mysql_query("SELE CT max( `id` ) FROM `table`"));
$id = $id[0]+1;
Между этими строчками id уже может прибавиться, да и чем не устраивает мой ответ?
arvitaly вне форума Ответить с цитированием
Старый 05.10.2010, 21:25   #5
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

вообще в корне неправильный подход хранить два абсолютно одинаковых значения в разных полях записи таблицы.... ЗАЧЕМ?
ADSoft вне форума Ответить с цитированием
Старый 05.10.2010, 21:30   #6
Никки
Форумчанин Подтвердите свой е-майл
 
Аватар для Никки
 
Регистрация: 20.11.2007
Сообщений: 500
По умолчанию

Цитата:
вообще в корне неправильный подход хранить два абсолютно одинаковых значения в разных полях записи таблицы.... ЗАЧЕМ?
видимо они не всегда одинаковы!

Цитата:
да и чем не устраивает мой ответ?
я, конечно, не эксперт в запросах к mysql, но то что написали Вы вижу впервые.
Никки вне форума Ответить с цитированием
Старый 05.10.2010, 21:32   #7
mrgrudge
Форумчанин
 
Аватар для mrgrudge
 
Регистрация: 20.02.2010
Сообщений: 229
По умолчанию

да знаю,сам замучался уже...но к id привязывается одна таблица со списками, к list другая...я так подумал и решил что лучше 2 одинаковых столбца в 1 таблице, чем 2 одинаковых таблицы с разными названиями....
думай как баг, действуй как баг, и ты найдешь баг )
mrgrudge вне форума Ответить с цитированием
Старый 05.10.2010, 21:33   #8
Никки
Форумчанин Подтвердите свой е-майл
 
Аватар для Никки
 
Регистрация: 20.11.2007
Сообщений: 500
По умолчанию

Проверил! Работает, но в `list` попадает предыдущий `id`.
Никки вне форума Ответить с цитированием
Старый 05.10.2010, 21:34   #9
Никки
Форумчанин Подтвердите свой е-майл
 
Аватар для Никки
 
Регистрация: 20.11.2007
Сообщений: 500
По умолчанию

Цитата:
Сообщение от mrgrudge Посмотреть сообщение
да знаю,сам замучался уже...но к id привязывается одна таблица со списками, к list другая...я так подумал и решил что лучше 2 одинаковых столбца в 1 таблице, чем 2 одинаковых таблицы с разными названиями....
Вы два раза подумали что то не то. Объясните всё понормальному!

Почему нельзя привязать обе таблицы со списками к одному id?

Последний раз редактировалось Никки; 05.10.2010 в 21:36.
Никки вне форума Ответить с цитированием
Старый 05.10.2010, 21:40   #10
kirosin
Форумчанин
 
Аватар для kirosin
 
Регистрация: 15.01.2010
Сообщений: 209
По умолчанию

привяжи обе таблицы со списками к id и не мучайся

если сильно нравится издеваться над собой, тогда так сделай:
Код:
$result = mysql_fetch_array(mysql_query("SELECT max( `id` ) FROM `table` LIMIT 1"));
$id = $result[id]+1;

mysql_query("INSERT  INTO  `table` ( `id` , `list` , `text`  ) VALUES ('',  '$id',  '$text' );");
Все генитальное просто.

Последний раз редактировалось kirosin; 05.10.2010 в 21:50.
kirosin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
А вы тоже так делаете? CodeExpert Свободное общение 12 11.01.2010 12:12
В С++ if (!f) это тоже самое что и if (f==0)? GaJIbI4 Помощь студентам 2 05.12.2009 17:37
тоже на паскале про цисло ex-hack Помощь студентам 1 05.06.2009 05:41
снять все задачи - тоже самое что ctrl+alt+delete WOLFak Win Api 3 01.01.2008 16:38
Помогите мне тоже с задачами, пожалуйста AnKS Помощь студентам 1 27.10.2007 08:51