PHP сообщество

любители кода :)

Next-Key Locking

Bloged in Без рубрики от admin Среда Август 22, 2007 at about 3:15 пп
Задачка:На страничке есть форма для коментария и рейтинга брокеров.Постом передается:
array(5) { [”bid”]=> string(2) “12″ [”user”]=> string(1) “1″ [”rating”]=> array(4) { [1]=> string(1) “1″ [2]=> string(1) “1″ [3]=> string(1) “1″ [5]=> string(1) “1″ } [”comments”]=> string(14) “srt gsdfg sdfg” [”mysubmit”]=> string(12) “Submit Post!”} Сохраняются данные в 2 табличках: CREATE TABLE `rating_data` ( `id` int(11) NOT NULL auto_increment, `id_item` int(11) NOT NULL, `id_comment` int(11) NOT NULL, `data` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `id_item` (`id_item`,`id_comment`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=57 ; CREATE TABLE `comments` ( `id` int(11) NOT NULL auto_increment, `id_user` int(11) NOT NULL, `id_broker` int(11) NOT NULL, `id_ratingconf` int(11) NOT NULL, `date_post` datetime NOT NULL, `text_post` text NOT NULL, PRIMARY KEY (`id`), KEY `id_user` (`id_user`,`id_broker`), KEY `id_ratingconf` (`id_ratingconf`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=68 ; пхп код: public static function post_rating ($post, $bid) { // $sql = “SELECT id FROM rating_conf WHERE rating_conf.default=1″; $sth = Storage::instance()->simpleQuery($sql); Storage::instance()->fetchInto($sth, $data, DB_FETCHMODE_ASSOC); $result['default_id'] = $data['id']; // $id = Storage::instance()->nextId(”comments”); $sql = “INSERT INTO comments (id, id_user, id_broker, date_post, text_post, id_ratingconf) “; $sql .= “VALUES ($id,” . $post['user'] . “,” . $bid . “, NOW(), '”.$post['comments'].”','”.$result['default_id'].”') “; Storage::instance()->simpleQuery($sql); foreach ($post['rating'] as $key => $val){ $sql = “INSERT INTO rating_data (id_item, id_comment, data) “; $sql .= “VALUES ('$key','$id','$val')”; Storage::instance()->simpleQuery($sql); } } Проблема:Исполняется 2 INSERT запроса, но когда много людей будут постить, я боюсь, что утеряеться правельный $id для следующего запроса.Спиной чувствую, что можна сделать просче.Спасибо за советы.

Комментариев нет

Комментариев нет.

Извините, комментирование на данный момент закрыто.

сейф Форпост двери Калининград ; Малярная лента Скотчмалярный 50мм 50м 36шт упак ; Кипарис Sadolin 564 аэрозоль 400мл ; Фасадный кирпич NF 490х71