Задачка:На страничке есть форма для коментария и рейтинга брокеров.Постом передается:
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 для следующего запроса.Спиной чувствую, что можна сделать просче.Спасибо за советы.
Комментариев нет
Комментариев нет.
Извините, комментирование на данный момент закрыто.