Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: помогите разобраться с базой

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: ОБЕЩАЮ, ЭТО НЕ ТУПОЙ ВОПРОС, КАК ОБЫЧНО ВЫ ПРИВЫКЛИ ВИДЕТЬ
IOpeH
Отправлено: 20 Ноября, 2007 - 22:37:06
Post Id



Частый гость


Покинул форум
Сообщений всего: 175
Дата рег-ции: Нояб. 2007  


Помог: 0 раз(а)




есть у меня гостевая книга, раньше она была на файловой системе и всё работало отлично. Я её решил переделать под mysql, ну и переделал ...

второй день только с базами разбираюсь, опыта нет...

таблица в базе содержит 4 графы, первая ID (была создана с такими настройками INT NOT NULL PRIMARY KEY AUTO_INCREMENT), потом дата добавления, имя и само сообщение.

а суть проблемы в следующем... добавляешь коментарий, второй , третий. Всё вроде как надо, выводятся потом по порядку. НО удаляем второй коментарий, остаются первый и третий с ID 1 и 3 соответственно. далее добавляем новый комент уже четвёртый, и он занимает не последнее место, как по логике должно быть, а место второво. Тоесть сначало первый потом четвёртый с ID 4 , ну и потом третий.

Для удаления использовал следующий запрос:
DELETE FROM имя_таблицы WHERE имя_колонки = уникальный_номер

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

ну и соответственно вопросы такие:
1) можно ли совсем удалить строку, чтобы не осталось этих пустых ячеек?
2) если такой вариант невозможен, какие есть варианты решения этой задачи, альтернативные методы?
3) Это был тупой и обыденный вопрос или он всётаки заслуживает внимания и обсуждения ?
 
 Top
Snic
Отправлено: 21 Ноября, 2007 - 00:15:44
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Окт. 2007  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2.  function delete_content( $id )
  3.   {
  4.       $query = "DELETE FROM content WHERE id=".$id;
  5.       mysql_query ( $query );
  6.       return true;
  7.   }
  8.  


Вот то что тебе нужно Хм


-----
Лень - двигатель прогресса, имхо Улыбка
Работаю над проектами в сфере информационного сайтостроения.
 
 Top
IOpeH
Отправлено: 21 Ноября, 2007 - 01:02:27
Post Id



Частый гость


Покинул форум
Сообщений всего: 175
Дата рег-ции: Нояб. 2007  


Помог: 0 раз(а)




Snic,
СПС!
а поясни, если не трудно конечно, почему у меня не работало как надо, очень интересно узнать...\n\n(Добавление)
хотя не, это не помогает, вообще то это абсолютно тот же запрос, что и использовал я Хм
 
 Top
Snic
Отправлено: 21 Ноября, 2007 - 01:17:39
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Окт. 2007  


Помог: 0 раз(а)




Этот код не нулит ячейки а он просто удаляет их.
а по поводу количества ID я тоже тут у людей спрашивал почему так у меня было что в базе допустим 1 2 3 а при добавлении создавалась не 4 5 6 а 54 55 56 в смысле уже большие числа а почему понять не мог и таблицу нулил чтоб вообще нечего там небыло а всеравно создается 57 58 59 а на мой вопрос промолчали


-----
Лень - двигатель прогресса, имхо Улыбка
Работаю над проектами в сфере информационного сайтостроения.
 
 Top
IOpeH
Отправлено: 21 Ноября, 2007 - 01:32:16
Post Id



Частый гость


Покинул форум
Сообщений всего: 175
Дата рег-ции: Нояб. 2007  


Помог: 0 раз(а)




фиха в том что у меня то дописываеться в базу не в конец, а на место где когда то была запись, а что касается твоих 55 56, дак у меня тоже самое, тоесть если я ща удалю все записи из таблицы то у меня с добавлением новой будет ID не 1 , а как и у тебя с какой нить там 10-ой к пимеру... меня этот вопрос тоже интересует
 
 Top
Snic
Отправлено: 21 Ноября, 2007 - 01:44:52
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Окт. 2007  


Помог: 0 раз(а)




значит это в добавлении прабла
попробуй это
PHP:
скопировать код в буфер обмена
  1.  
  2. // тут был длинный код ..
  3.  

код сам там под себя поправишь
у меня с этим кодом всё good
только ID непонятен.


-----
Лень - двигатель прогресса, имхо Улыбка
Работаю над проектами в сфере информационного сайтостроения.
 
 Top
valenok
Отправлено: 21 Ноября, 2007 - 01:58:11
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




но хотя тема называется оригинально.
Оставлю тем кто ещё не видел ..


-----
Truly yours, Sasha.
 
My status
 Top
IOpeH
Отправлено: 21 Ноября, 2007 - 02:27:41
Post Id



Частый гость


Покинул форум
Сообщений всего: 175
Дата рег-ции: Нояб. 2007  


Помог: 0 раз(а)




а мы собственно ещё не закончили ! ... Радость
 
 Top
valenok
Отправлено: 21 Ноября, 2007 - 03:27:39
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




О боже, не слушайте snik ..
жутко.

А вообще давайте сюда дамп БД
запросы и цикл которым вы приниамете и выводите данные\n\n(Добавление)
кроме того DELETE удаляет полностью строку к чёртовой матери.

function delete_content( $id )
{
$query = "DELETE FROM content WHERE id=".$id;
mysql_query ( $query );
return true;
}

А это .. Автору сценарии ужастикам писать ..


-----
Truly yours, Sasha.
 
My status
 Top
Snic
Отправлено: 21 Ноября, 2007 - 03:48:52
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Окт. 2007  


Помог: 0 раз(а)




Уважаемый valenok
мы тут учимся писать на php
кричать на нас не надо
нам надо подсказать поставить так сказать на верный путь вот!


-----
Лень - двигатель прогресса, имхо Улыбка
Работаю над проектами в сфере информационного сайтостроения.
 
 Top
valenok
Отправлено: 21 Ноября, 2007 - 03:55:30
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Цитата:
фиха в том что у меня то дописываеться в базу не в конец, а на место где когда то была запись

Как вы об этом узнали?


-----
Truly yours, Sasha.
 
My status
 Top
Infuzzer
Отправлено: 21 Ноября, 2007 - 12:15:45
Post Id


Гость


Покинул форум
Сообщений всего: 80
Дата рег-ции: Нояб. 2007  
Откуда: Израиль, Ашкелон


Помог: 0 раз(а)




Почему все сообщения Snic корректируются модератором? =\
 
 Top
EuGen Администратор
Отправлено: 21 Ноября, 2007 - 12:26:26
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Е-мае ((* ..
зачем Вам вообще беспокоиться о том, как там цифирки в колонке первичного ключа идут?
Если Вы хотите, чтобы выводилось в порядке возрастания колонки id - так и сообщите БД, что Вы так хотите сделать вывод в Вашем скрипте:
PHP:
скопировать код в буфер обмена
  1.  
  2. $query="SELECT * FROM your_table ORDER BY id";
  3. $res=mysql_query($query);
  4. while($row=mysql_fetch_array($res))
  5. {
  6. //Ваш вывод
  7. }
  8.  

У Вас проблема не в том, как удалять, а в том, как потом это показывать ..


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
IOpeH
Отправлено: 21 Ноября, 2007 - 12:36:36
Post Id



Частый гость


Покинул форум
Сообщений всего: 175
Дата рег-ции: Нояб. 2007  


Помог: 0 раз(а)




EuGen, отлично, спс, действительно то что нужно! А не подскажет кто нубуть, где можно найти толковое на понятном языке по MySQL? самое толковое я пока нашёл кокраз на вашем сайте (http://www.php.su/mysql/?commands), но этого не достаточно...
 
 Top
EuGen Администратор
Отправлено: 21 Ноября, 2007 - 12:47:31
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Да не за что ..
Используйте официальную документацию:
http://www[dot]mysql[dot]com
-это если у Вас нет проблем с английским.
Кроме того, есть неплохой (правда медленный) портал по mysql на русском:
http://www[dot]mysql[dot]ru
На нашем портале есть много материалов по этой теме:
http://php.su/mysql/
http://php.su/mysql/manual/
И в списке функций на букву "m":
http://php.su/functions/?page=M


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB