Создаю новую тему по этому вопросу.... Столкнулся с проблемой вывода отчета... Значит 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 получилось не очень - объекты в списке дублируются... Да и не совсем понимаю, как приплести в таблицу поля для дат... Дайте направление, плиз
Вобщем сделал так: Код (Text): include 'mysql.php'; // Запрос на выборку объектов, посещённых хотя бы один раз $query = "SELECT * FROM `objects` WHERE `rating` > 1 ORDER BY `rating` DESC"; $query = mysql_query($query); if(!$query) echo mysql_error(); echo '<table border=1> <tr><td colspan=2 > </td>'; $from = $_POST['from']; $to = $_POST['to']; // Функция записи временного диапазона в массив function getDateRange($from, $to) { $t1 = strtotime($from); $t2 = strtotime($to) + 3600; $dates = array(); for($i = $t1; $i <= $t2; $i += 86400) $dates[] = date("Y-m-d",$i); return $dates; } $dates = getDateRange($from, $to); // Вывод дат диапазона в "шапку" таблицы foreach ($dates as $dt) { $dt1 = $dt[8].$dt[9].'-'.$dt[5].$dt[6].'-'.$dt[0].$dt[1].$dt[2].$dt[3]; echo '<td>'. $dt1 .'</td>'; } echo '</tr>'; while($row = mysql_fetch_array($query)) { include 'rating_table.php'; } echo '</table>'; и rating_table.php: Код (Text): <tr> <td><?php echo $row['name'];?></td> <td><?php echo $row['orgname'];?></td> <?php foreach($dates as $dt) { $q = "SELECT `pl_min` FROM `data` WHERE `date` = $dt AND `objid` = ". $row['id']; $q = mysql_query($q); if(!$q) {mysql_error();} $plus = mysql_fetch_array($q); echo '<td>'. $plus['pl_min'] .'</td>'; } ?> <tr> По идее все плюсы должны расставляться, однако этого не происходит...Возможно кривой запрос в цикле??