Можно ли как нибудь не выводить поля которые пустые? есть таблица Код (Text): contacts CREATE TABLE `contacts` ( `id_contact` int(11) NOT NULL auto_increment, `name` varchar(30) NOT NULL, `client` tinytext NOT NULL, `CC_AMS` tinytext NOT NULL, `CC_AM` tinytext NOT NULL, `CRC` tinytext NOT NULL, `EQUIPMENT` tinytext NOT NULL, `Prescription` tinytext NOT NULL, `Order_` tinytext NOT NULL, `pos` smallint(3) NOT NULL default '0', `hide` enum('show','hide') NOT NULL default 'show', `id_catalog` int(8) NOT NULL default '0', PRIMARY KEY (`id_contact`) ) ENGINE=MyISAM AUTO_INCREMENT=83 DEFAULT CHARSET=cp1251 все записи хранимые в таблице имеют определенный id_catalog, получается как бы таблица в которой хранятся другие таблицы, разделяющиеся определенным id_catalog. В запрос посылается определенный id и по нему отбираются данные из таблицы, но не все таблицы которые строятся в результате по id используют все поля прописанные в коде, для некоторых таблиц остаются пустые... хотелось бы от них избавиться(пустых полей), но если править код и убрать поля при построении для какой-то одной таблицы(данных с определенным id) то при выводе другой таблицы использующей этот код, она останется без поля в котором есть нужные данные... Например, таблица с id_catalog=1 не использует поле CC_AM а таблица с id_catalog=2 использует его но не использует поля CRC и Equipment которые использует таблица с id_catalog=1 и т.д. как быть? код таблицы для вывода информации: Код (Text): <?php $query = "SELECT * FROM contacts WHERE id_catalog=".$catc['id_catalog']." Order BY pos"; $prt = mysql_query($query); if(!$prt) puterror("Ошибка при обращении к блоку Контакты"); if(mysql_num_rows($prt) > 0) { echo "<tr class='tableheadercat'> <td><p class=zagtable>Порт</td> <td align=center><p class=zagtable>Клиент</td> <td align=center><p class=zagtable>CC_AMS</td> <td align=center><p class=zagtable>CRC</td> <td align=center><p class=zagtable>CC_AM</td> <td align=center><p class=zagtable>Оборудование</td> <td align=center><p class=zagtable>Предписание</td> <td align=center><p class=zagtable>Заказ</td> <td align=center><p class=zagtable>Действия</td> </tr>"; while($par = mysql_fetch_array($prt)) { $stylerow=""; if($par['hide'] == "hide") { $showhide = "<a href=showcont.php?id_contact=".$par['id_contact']."&id_parent=$id_parent&id_catalog=".$catc['id_catalog'].">Отобразить</a>"; $stylerow="class='hiddenrow'"; } else $showhide = "<a href=hidecont.php?id_contact=".$par['id_contact']."&id_parent=$id_parent&id_catalog=".$catc['id_catalog'].">Скрыть</a>"; echo "<tr $stylerow > <td><p>".$par['name']."</td> <td align=center><p> ".$par['client']."</td> <td align=center><p> ".$par['CC_AMS']."</td> <td align=center><p> ".$par['CRC']."</td> <td align=center><p> ".$par['CC_AM']."</td> <td align=center><p> ".$par['EQUIPMENT']."</td> <td align=center><p> ".$par['Prescription']."</td> <td align=center><p> ".$par['Order_']."</td> <td align=center><p>$showhide<br> <a href=editcontform.php?id_contact=".$par['id_contact']."&id_parent=$id_parent&id_catalog=".$catc['id_catalog'].">Исправить</a><br> <a href=delcont.php?id_contact=".$par['id_contact']."&id_parent=$id_parent&id_catalog=".$catc['id_catalog'].">Удалить</a></td> </tr>"; } } ?> [/code]
можно создать многомерный массив для хранения параметров вывода. Индексом массива будет значение id_catalog: $out[id_catalog]=array('fields'=array(список полей),'headers'=>array(список заголовков )); Код привожу не весь, а так, чтобы показать идею использования PHP: //создание массива согласно наличию полей в таблицах- поля и заголовки должны идти в порядке вывода $out=array(); $out[1]=array('fields'=>array('client','CRC','EQUIPMENT','Prescription','Order_'),'headers'=>array('Клиент','CRC','Оборудование','Предписание','Заказ')); $out[2]=array('fields'=>array('client','CC_AMS','Prescription','Order_'),'headers'=>array('Клиент','CC_AMS','Предписание','Заказ')); $out[3]=...; //вывод заголовков $id_catalog=$catc['id_catalog']; echo "<tr class='tableheadercat'>"; foreach($out[$id_catalog]['headers'] as $header) { echo "<td>$header</td> " } echo "</tr>"; // вывод данных echo "<tr class='$stylerow'>"; foreach($out[$id_catalog]['fields'] as $field) { echo "<td>{$par[$field]}</td>" } echo "</tr>";