Login
Делаю тестовое задание
285 просмотров
Перейти к просмотру всей ветки
Задание PHP+MySQL[править]
Табличка с данными. Там всего несколько полей и несколько строк. По parent_id есть привязка к id, т.е. родитель - последователь. У каждой строчки есть значение value. Вот хотелось бы на выходе получить табличку вида
Name (имя в поле name) -
value (сумма текущего значения + сумма всех последователей по parent_id)
Важно! Используйте PHP5.5 - mysqli вместо устаревшего mysql
Таблица:
/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=*/;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*Table structure for table `table1` */
DROP TABLE IF EXISTS `table1`;
CREATE TABLE `table1` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`parent_id` int(11) DEFAULT '0',
`name` varchar(255) DEFAULT NULL,
`value` int(11) DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;
/*Data for the table `table1` */
insert into `table1`(`id`,`parent_id`,`name`,`value`) values (1,0,'test1',0),(2,0,'test2',30),(3,1,'test3',31),(4,6,'test4',77),(5,3,'test5',45),(6,2,'test6',20),(7,5,'test7',10);
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
Результат[править]
Должно получиться нечто такое:
id parent_id name value sum
1 0 test1 0 86
2 0 test2 30 127
3 1 test3 31 86
4 6 test4 77 77
5 3 test5 45 55
6 2 test6 20 97
7 5 test7 10 10
Табличка с данными. Там всего несколько полей и несколько строк. По parent_id есть привязка к id, т.е. родитель - последователь. У каждой строчки есть значение value. Вот хотелось бы на выходе получить табличку вида
Name (имя в поле name) -
value (сумма текущего значения + сумма всех последователей по parent_id)
Важно! Используйте PHP5.5 - mysqli вместо устаревшего mysql
Таблица:
/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=*/;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*Table structure for table `table1` */
DROP TABLE IF EXISTS `table1`;
CREATE TABLE `table1` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`parent_id` int(11) DEFAULT '0',
`name` varchar(255) DEFAULT NULL,
`value` int(11) DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;
/*Data for the table `table1` */
insert into `table1`(`id`,`parent_id`,`name`,`value`) values (1,0,'test1',0),(2,0,'test2',30),(3,1,'test3',31),(4,6,'test4',77),(5,3,'test5',45),(6,2,'test6',20),(7,5,'test7',10);
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
Результат[править]
Должно получиться нечто такое:
id parent_id name value sum
1 0 test1 0 86
2 0 test2 30 127
3 1 test3 31 86
4 6 test4 77 77
5 3 test5 45 55
6 2 test6 20 97
7 5 test7 10 10
Половина евро в час