[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с циклом
Serdg
ммм... другой вопрос, вот есть таблица в базе данных, в ней несколько строк, например 10, допустим мне нужно удалить одну строку где-нито в середине, создаю запрос к примеру:
 mysql_query("DELETE FROM table WHERE id='5'", $db) 
, так вот, строка удаляется, после этого мне понадобилось вставить какую-нито строку с помощью запроса
mysql_query("INSERT INTO table() VALUES()", $db)
, почему строка вставляется на место удалённой, а не в конец таблицы? и даже если перевести внутренний указатель на конец таблицы с помощью
mysql_data_seek()
всё равно строка вставляется на место удалённой, подскажите пожалуйста почему так происходит и как это исправить?



Спустя 14 минут, 29 секунд (20.06.2011 - 20:16) YVSIK написал(а):
О майн гот mad.gif
вы правила читали этого форума
код надо выделять BB-тегами
есть-же в редакторе эти кнопки
всё начинается с организации и порядка на вашем будущем сайте
щас самое время исправить.)) cool.gif
вот почитай

Спустя 4 дня, 20 часов, 45 минут, 33 секунды (25.06.2011 - 17:02) Serdg написал(а):
мда, так никто и не ответил((

Спустя 1 час, 5 минут, 31 секунда (25.06.2011 - 18:07) IPnex написал(а):
А для поля id установлен primary key и auto increment?

Спустя 22 часа, 40 минут, 55 секунд (26.06.2011 - 16:48) Serdg написал(а):
да, для id установлен и primary key и auto increment

Спустя 7 минут, 54 секунды (26.06.2011 - 16:56) neadekvat написал(а):
С чего бы это "на место удаленной"? С какой id она добавляется?

Спустя 1 минута, 14 секунд (26.06.2011 - 16:58) sebastjan написал(а):
Вот ваш
mysql_query("INSERT INTO table() VALUES()", $db)


удаляем запись
mysql_query(" DELETE FROM `table` WHERE `name`='".mysql_real_escape_string($xxx)."' ");

Так вставляем запись
Само собой сначало подключиться к БД.
mysql_query("INSERT INTO `table` (id,name) 
VALUES (NULL, '"
.mysql_real_escape_string($xxx)."') ");


А вообще если пользуетесь МайАдмин, сделайте из него запрос вставки и там есть функция показать ПХП код, всё предельно ясно.

Спустя 20 минут, 51 секунда (26.06.2011 - 17:18) Serdg написал(а):
Цитата (neadekvat @ 26.06.2011 - 13:56)
С чего бы это "на место удаленной"? С какой id она добавляется?

я и сам не пойму почему на место удалённой она добавляется, но добавляется она со следующим id как и положено, например, у меня есть написанный чат, для него есть таблица в MySQL для каждого сообщения отдельная строка, например условие такое что если число сообщений становится больше 10, то самые ранние сообщения удаляются автоматически из базы данных, например в таблице 10 сообщений, последний id=10, пользователь присылает ещё одно сообщение, их становится 11, самое первое сообщение при этом удаляется, а новое 11-ое сообщение под id=11 вставляется на самый верх таблицы вместо первого почему-то

Спустя 3 минуты, 6 секунд (26.06.2011 - 17:21) neadekvat написал(а):
Познакомся с сортировкой в mysql.

Спустя 6 минут, 10 секунд (26.06.2011 - 17:28) Serdg написал(а):
Цитата (sebastjan @ 26.06.2011 - 13:58)
Вот ваш
mysql_query("INSERT INTO table() VALUES()", $db)


удаляем запись
mysql_query(" DELETE FROM `table` WHERE `name`='".mysql_real_escape_string($xxx)."' ");

Так вставляем запись
Само собой сначало подключиться к БД.
mysql_query("INSERT INTO `table` (id,name) 
VALUES (NULL, '"
.mysql_real_escape_string($xxx)."') ");


А вообще если пользуетесь МайАдмин, сделайте из него запрос вставки и там есть функция показать ПХП код, всё предельно ясно.

извините, может глупый вопрос, но поясните пожалуйста в чём особая разница между моим и вашим запросом? просто id у меня как и надо ставится, дальше продолжает расти, например было у последнего сообщения id=10, то у следующего оно как и надо становится 11, просто дело в том. что когда удаляется самое первое сообщение, 11-ое сообщение с id=11, вставляется на место первого в самый верх таблицы почему-то, и соответственно оно уже выводится в чате не после 10-го, а самым первым, вот я бы очень хотел решить эту проблему, если знаете, подскажите пожалуйста как сделать чтобы после удаления самого первого сообщения, следующее вставлялось по порядку в самый конец таблицы, а не в начало вместо первого! заранее извиняюсь, может я очень туплю, но просто всё перепробывал ничего не выходит, помогите пожалуйста разобраться

Спустя 2 минуты, 25 секунд (26.06.2011 - 17:30) Serdg написал(а):
Цитата (neadekvat @ 26.06.2011 - 14:21)
Познакомся с сортировкой в mysql.

то есть, при запросе SELECT просто отсортировать сообщения по id?

Спустя 1 минута, 59 секунд (26.06.2011 - 17:32) neadekvat написал(а):
Цитата (Serdg @ 26.06.2011 - 18:30)
то есть, при запросе SELECT просто отсортировать сообщения по id?

Бинго wink.gif

Спустя 2 минуты, 55 секунд (26.06.2011 - 17:35) Serdg написал(а):
Цитата (neadekvat @ 26.06.2011 - 14:32)
Цитата (Serdg @ 26.06.2011 - 18:30)
то есть, при запросе SELECT просто отсортировать сообщения по id?

Бинго wink.gif

к стати вариант хороший, спасибо огромное обязательно попробую! но хотелось бы ещё узнать, всё-таки есть ли способ после запроса удаления первого сообщения, перевести внутренний указатель обратно на последнее, чтобы при запросе вставки нового сообщения оно вставилось как и надо в конец таблицы? или это невозможно?

Спустя 6 минут, 54 секунды (26.06.2011 - 17:42) neadekvat написал(а):
Serdg, пойми, нет "начала" и нет "конца" у таблицы. Есть строки, которые в таблице хранятся, вот и все. Если тебе нужны "начало" и "конец" - сортируй таблицу.
То, что ты наблюдаешь в phpmyadmin или в выводе без сортировке - это случайный порядок, который основан на физическом расположении твоих данных на диске. БД посчитало, что так записать удобнее/практичнее/еще что-то, и записало, все. Управлять этим нельзя и не надо.

Спустя 3 минуты, 51 секунда (26.06.2011 - 17:46) Serdg написал(а):
Цитата (neadekvat @ 26.06.2011 - 14:42)
Serdg, пойми, нет "начала" и нет "конца" у таблицы. Есть строки, которые в таблице хранятся, вот и все. Если тебе нужны "начало" и "конец" - сортируй таблицу.
То, что ты наблюдаешь в phpmyadmin или в выводе без сортировке - это случайный порядок, который основан на физическом расположении твоих данных на диске. БД посчитало, что так записать удобнее/практичнее/еще что-то, и записало, все. Управлять этим нельзя и не надо.

ясно, всё понял!) спасибо огромнейшее за ответы, вы мне очень помогли!

Спустя 12 минут, 2 секунды (26.06.2011 - 17:58) Serdg написал(а):
если можно, задам ещё один вопрос, не так давно с этим столкнулся и немного в замешательстве, вобщем ситуация следующая, делал регистрацию на сайте, сделал в MySQL таблицу с полями логина и пароля пользователя, так вот, регистрация проходит нормально, логин и пароль заносятся в базу, всё хорошо, вход под этими логином и паролем тоже проходит нормально, но только поначалу, по какой-то причине, допустим через день, или через два, или позже, или раньше наачинается глюк какой-то вводишь те же самые логин пароль, но подтверждение не проходит, потомучто вводимые логин пароль почему-то не совпадают с теми что в базе данных, хотя вводишь вточности всё как в БД, даже из базы данных пробовал вставлять значения логин пароль прямо в атрибут VALUES полей ввода, и просто копировать пробовал, ввсё равно проверка не проходит, говорит не совпадают и всё, хотя например вчера всё работало, и никаких изменений после этого в код не вносил, поначалу думл может с моей локальной базой глюк какой-то мало ли, но потом и на хосте та же ерунда случилась, подскажите пожалуйста из-за чего такое может случится?

Спустя 9 минут, 58 секунд (26.06.2011 - 18:08) neadekvat написал(а):
Создавай новую тему, выкладывай код и структуру базы.

Спустя 1 минута, 35 секунд (26.06.2011 - 18:09) Serdg написал(а):
Цитата (neadekvat @ 26.06.2011 - 15:08)
Создавай новую тему, выкладывай код и структуру базы.

хорошо!
Быстрый ответ:

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