Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Записи дублируются 
:(
    Опции темы
Areostar
Дата 22.2.2012, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1191
Регистрация: 5.4.2008

Репутация: -1
Всего: -2



Вот молй скрипт:

Код

 mysql_query("INSERT INTO `general_table` (date_create, category, business, status) VALUES('".$dt."' , '".$category."' , 1 , '".$_vip."')") or die(mysql_error());
       
         mysql_query("INSERT INTO `small_apartment_table` (small_text, big_text, price) VALUES('".$s_text."' , '".$b_text."' , '".$price."')") or die(mysql_error());
    
         mysql_query("INSERT INTO `bid_apartment_table` (rooms, level, total_level, squer, age, park, lift, mazgan, rehut, free_time) VALUES('".$rooms."' , '".$level."' , '".$total_level."' , '".$squert."' , '".$age_house."' , '".$park."' , '".$lift."' , '".$mazgan."' , '".$rehut."' , '".$time_free."')") or die(mysql_error());   
       
         $query = "SELECT id FROM `small_apartment_table` WHERE `big_text` = '$b_text'";
         $result = mysql_query($query) or die(mysql_error());
       
         while ($row = mysql_fetch_array($result))
         {   $id = $row["id"];   }
         $_SESSION["curr_id"] = $id; 
       
          mysql_query("INSERT INTO `address_table` (x_coard, y_coard, id_obj) VALUES('".$coard_x."' , '".$coard_y."' , '".$id."')") or die(mysql_error());

выполняется, но вместо одной записи во всех таблицах оказывается по 2 одинаковые записи?!=-O как это исправить. Или на крайний случай подскажите как мне удалять из базы дублирующие записа(на 100
% схожие) и исправлять данные счётчика(все поля id у меня autoincrement)
PM MAIL   Вверх
ksnk
Дата 22.2.2012, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 14
Всего: 386



Вероятно, пригодится функция mysql_insert_id / Она позволяет получить последний вставленный индекс в таблицу
Код

 mysql_query("INSERT INTO `small_apartment_table` (small_text, big_text, price) VALUES('".$s_text."' , '".$b_text."' , '".$price."')") or die(mysql_error());
    
$id = mysql_insert_id(); 
$_SESSION["curr_id"] = $id; 



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Areostar
Дата 22.2.2012, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1191
Регистрация: 5.4.2008

Репутация: -1
Всего: -2



а чем это поможет против дублирования записей
PM MAIL   Вверх
ksnk
Дата 22.2.2012, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 14
Всего: 386



Цитата(Areostar @  22.2.2012,  16:14 Найти цитируемый пост)
а чем это поможет против дублирования записей 

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

Если поля дублируются - значит из кто-то два раза вставляет  smile 
Изловить ситуацию можно, если построить уникальный композитный ключ на 3 поля(small_text, big_text, price) для таблицы small_appertmant. Тогда при вставке будет ошибка и по следам можно изловить источник проблем.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Areostar
Дата 23.2.2012, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1191
Регистрация: 5.4.2008

Репутация: -1
Всего: -2



проблему решил(с помощью сессий)но вот ещё проблемма

 
Код

mysql_query("INSERT INTO `address_table` (x_coard, y_coard, id_obj) VALUES('".$coard_x."' , '".$coard_y."' , '".$id."')") or die(mysql_error());


в поля x_coard, y_coard не добавляются данные

скрин таблицы прилогаю

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  scr.jpg 66,31 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0434 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.