Сорри, если название темы получилось глупым. Вопрос в чем. Скажем, есть список объектов. Каждый день каждому объекту надо устанавливать "+" или "-", и иметь возможность выводить таблицу-отчет за определённый период (с такого-то по такое число). Как организовать подобную БД? Я так понимаю, создавать по столбцу для каждого дня - не вариант...
Если б не отчет, то просто одно поле у объекта. А теперь тебе придется сделать две таблицы: объекты и подням. В поднях каждая строка это номер объекта, дата и tinyint изменение рейтинга.
я думаю, ты надеялся на какое-то более хитрое решение, чем копить все плюсики и минусики. Однако его нет, если хочешь видеть историю.
Маленький вопрос. Новую тему уж не стал заводить. Как в INSERT запросе автоматически прибавлять к значению поля числового типа единицу, например? Вариант Код (Text): mysql_query("INSERT INTO `data` ( `objid`, `date`, `pl_min`, `rait` ) VALUES(". $object . ',' . $date . ',' . $plus . ", rait+1)"); Не принимает...
Если "прибавлять", то видимо нужная запись уже есть, значит не INSERT, а UPDATE. Учи SQL. Добавлено спустя 3 минуты 29 секунд: Что-то вроде Код (PHP): mysql_query("UPDATE `data` SET `rait`=`rait`+1, `date`={$date}"); здесь поле date это дата последнего изменения рейтинга. я так понял ))) Добавлено спустя 2 минуты 23 секунды: rait - о май гад! вот э факинг инглиш.
Да, да, я говнокодю, признаю. Вспоминаю все то немногое, что когда-то знал))) Помогите разобраться с кавычками, плиз! Код (Text): $res = mysql_query("INSERT INTO `data` (objid, date, pl_min) VALUES('". $object, $date, 1 ."'");
С кавычками разобрался. Сейчас одна проблема: дата записывается везде как 0000-00-00 Код (Text): $date = $_POST['date']; $date1 = $date[6].$date[7].$date[8].$date[9].'-'.$date[0].$date[1].'-'.$date[3].$date[4]; mysql_query("INSERT INTO `data` (objid, date) VALUES(". $obj_id .", ". $date1 . ")");
Как посмотреть? В переменную дата записывается в правильном формате - гггг-мм-дд. Запрос выполняется...
mysql_query("INSERT INTO `data` (objid, date) VALUES(". $obj_id .", ". $date1 . ")"); замени на $query = "INSERT INTO `data` (objid, date) VALUES(". $obj_id .", ". $date1 . ")"; echo "ЗАПРОС: $query КОНЧИЛСЯ"; mysql_query($query);
INSERT INTO `data` (objid, date) VALUES(1, 2012-10-02) как я и говорил, вроде все нормально Добавлено спустя 11 минут 52 секунды: Дело было в кавычках: Код (Text): $res = "INSERT INTO `data` (objid, date) VALUES(". $obj_id .", "."'". $date1 . "'".")"; Добавлено спустя 30 секунд: Смотрится страшно, но работает)
нормально смотрится. названия полей тоже в обратные кавычки бери. Код (PHP): $res = "INSERT INTO `data` (`objid`, `date`) VALUES ($obj_id ,'$date1')";
igordata, благодарю! Столкнулся с проблемой вывода отчета... Значит 2 таблицы Код (Text): `data`( `id` int NOT NULL AUTO_INCREMENT KEY, `objid` int NOT NULL, `date` date, `pl_min` TINYINT(1) `objects` `id` int NOT NULL AUTO_INCREMENT KEY, `name` varchar(50), `orgname` varchar(50), `orient` varchar(150), `rating` int Надо вывести список всех объектов и расставить плюсы и минусы за каждый день определённого периода времени. То есть один объект на одну строку и одна дата на один столбец. Запрос в цикле это вроде как не гуд, так что пошёл смотреть как делают запросы сразу в тве таблицы. Что получилось: Код (Text): SELECT objects.id, objects.name, objects.orgname, objects.orient, objects.rating, data.objid, data.date, data.pl_min FROM `objects`, `data` WHERE objects.id = data.objid ORDER BY objects.rating DESC получилось не очень - объекты в списке дублируются... Да и не совсем понимаю, как приплести в таблицу поля для дат... Дайте направление, плиз