У меня блок новостей…Структура таблицы вот такая.
CREATE TABLE IF NOT EXISTS `news` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`timestamp` int(11) DEFAULT NULL,
`user_id` bigint(20) NOT NULL,
`obj` int(11) NOT NULL,
`details` tinytext NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=216 ;
INSERT INTO `news` (`id`, `timestamp`, `user_id`, `obj`, `details`) VALUES
(195, 1313075343, 113083, 18, '14'),
(193, 1313075112, 111, 17, '10'),
(194, 1313075179, 111, 16, '47'),
(204, 1313132049, 110011, 5, '{"obj_id":["111","113083","333","112409"]}'),
(202, 1313132095, 111, 5, '{"obj_id":["113083","110011","333","112409","112331"]}'),
(203, 1313132155, 113083, 5, '{"obj_id":["111","110011","112409","333"]}'),
(207, 1313132155, 333, 5, '{"obj_id":["111","110011","113083"]}'),
(208, 1313132154, 112409, 5, '{"obj_id":["110011","111","113083"]}'),
(209, 1313132095, 112331, 5, '{"obj_id":["111"]}'),
(211, 1313133194, 111, 17, '12'),
(212, 1313133450, 113083, 17, '14'),
(213, 1313133480, 111, 18, '15'),
(214, 1313133492, 333, 18, '15'),
(215, 1313133499, 112409, 18, '11');
В зависимости от obj новость новость отдельной таблицы, к примеру 17 - это статус, а 5 то друзья'{"obj_id":["111","110011","112409","333"]}') id новых др-й.
Каким способом лучше выбирать данные из таблиц, сейчас я делаю так
в зависимости от типа достаю сраз таблиц данны
private function listObj($array){
foreach ($array as $key => $value) {
foreach ($value as $key2 => $value2) {
if($key2 == 'obj'){
if($value[$key2] == 5){
var_dump($value).'<br/>';
} elseif ($value[$key2] == 11) {
// в зависимости от типа достаю сраз таблиц данны
} elseif ($value[$key2] == 16) {
} elseif ($value[$key2] == 17) {
} elseif ($value[$key2] == 18) {
} elseif ($value[$key2] == 19) {
}
}
}
}
}
Какие еще варианты могут быть еще? Более правильные и качественные.