Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 26.02.2013
Сообщений: 28
1

БД, упорядочивание в таблице для печатной формы

05.04.2013, 02:33. Показов 1127. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В общем вот какая проблема, в переди диплом но в ходе изучения PHP и MySQL я написал что смог для печатной формы, что не смог приведу ниже, ломал голову во всю, но не смог, есть HTML :
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<html>
<head>
    <meta http-equiv="content-type" content="text/html" />
    <meta name="author" content="Andry" />
    <title>Долги по исполнениям</title>
</head>
<body>
    <table width="100%" valign="top" border=0 cellpadding=2 cellspacing=0>
    <h3>Перечень мероприятий, подлежащих исполнению</h3>
        <p>
            <tr>
                <td valign="top"></td>
                <td valign="top"></td>
                <td valign="top">Исполнители</td>
                <td valign="top">Срок исп.</td>
                <td valign="top">Срок выполнения</td>
                <td valign="top">
                <td valign="top"></td>
            </tr>
            <tr>
                <td valign="top" colspan="6"><hr bgcolor="#cccc"/></td>
            </tr>
          <?php
            include('select/dolg_isp.php');
          ?>
        </p>
    </table>
    <table width="100%">
        <tr>
            <td valign="top" colspan="2"><p style="text-align: right;"><b>Подпись руководителя подразделения__________ Ф.И.О._________________________</b></p>
        </tr>
        <tr>
            <td valign="top" colspan="2"><b><i>тел. исполнителя - _________________________________________</i></b></td>
        </tr>
        <tr>
            <td valign="top"><b>Подлежит возврату в штаб (каб.217) с предоставлением копий несекретных документов, подтверждающих исполнение мероприятий</b></td>
            <td valign="BOTTOM" style="text-align: right;"><?php echo date('d M Y');?> г.</td>
        </tr>
    </table>
</body>
</html>
И PHP:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
$host = 'localhost';
$user = 'admin';
$password = 'admin';
$db = 'контроль_документов';
 
$connection = mysql_connect($host,$user,$password);
mysql_set_charset('cp1251',$connection);
if(!$connection || !mysql_select_db($db,$connection))
{
    exit(mysql_error());
}
$query = "SELECT * FROM исполнители ORDER BY `Код`";
$res = mysql_query($query);
while ($row = mysql_fetch_assoc($res))
{
    echo '<tr>';
        echo '<td valign="top" bgcolor="#eeeeee" colspan="2">'."Исполнитель: <u><b>".$row['Исполнители'].'</b></u></td>';
        echo '<td valign="top" bgcolor="#eeeeee"></td>';
        echo '<td valign="top" bgcolor="#eeeeee"></td>';
        echo '<td valign="top" bgcolor="#eeeeee"></td>';
        echo '<td valign="top" bgcolor="#eeeeee"></td>';
    echo '</tr>';
        $query1 = "SELECT документы.Код_документа as коддок, 
            вид_документов.Вид_документа as виддок, документы.Ном_документа 
            as номдок, документы.Дата as дата, исполнители.Исполнители as кемиздан, 
            документы.Содержание as содерж FROM вид_документов, документы, исполнители 
            WHERE вид_документов.Код_вида_документа = документы.Код_вида_документа AND исполнители.Код = документы.Кем_издан ORDER BY документы.Код_документа";
        $res1 = mysql_query($query1);
        while ($row1 = mysql_fetch_assoc($res1))
        {
            echo '<tr><b>';
                echo '<td valign="top" colspan="2" width="50%"><b>';
                    echo $row1['содерж'];
                echo '</b></td>';
                echo '<td valign="top"><b>';
                    echo "№ ".$row1['номдок'];
                echo '</b></td>';
                echo '<td valign="top"><b>';
                    echo "От: ".$row1['дата'];
                echo '</b></td>';
                echo '<td valign="top" colspan="2"><b><center>';
                    echo $row1['кемиздан'];
                echo '<center></b></td>';
            echo '</tr>';
            $query2 = "SELECT база.Код as код, база.Код_документа as код_док, документы.Содержание as сод, база.Ном_пункта as номпункт, база.Краткое_содержание as крсод,
                база.Исполнитель as исп, база.Срок_исполнения as срокисп, сроки.Поле1 as сроки, база.Срок_выполнения_ДО as сроквыпдо,
                база.Отметка_об_исполнении as отметка 
                FROM документы, база, сроки
                WHERE документы.Код_документа = база.Код_документа AND сроки.Код = база.Срок_выполнения AND документы.Содержание = '".$row1['содерж']."' AND база.Исполнитель LIKE '%".$row['Исполнители']."%' ORDER BY база.Ном_пункта";
            $res2 = mysql_query($query2);
            while ($row2 = mysql_fetch_assoc($res2))
            {
                echo '<tr>';    
                    echo '<td valign="top">';
                        echo "  п. ".$row2['номпункт']." ";
                    echo '</td>';
                    echo '<td valign="top">';
                        echo $row2['сод'];
                    echo '</td>';
                    echo '<td valign="top">';
                        echo $row2['исп'];
                    echo '</td>';
                    echo '<td valign="top">';
                    echo '</td>';
                    echo '<td valign="top">';
                        echo $row2['сроквыпдо'];
                    echo '</td>';
                echo '</tr>';}
                //$query3 = "SELECT COUNT(*) FROM документы, база, сроки
                //WHERE документы.Код_документа = база.Код_документа AND сроки.Код = база.Срок_выполнения AND документы.Содержание = '".$row1['содерж']."' AND база.Исполнитель LIKE '%".$row['Исполнители']."%' ORDER BY база.Ном_пункта";
                //$res3 = mysql_query($query3);
                //$count3 = mysql_fetch_row($res3);
                //$count3 = $count3[0];
                //echo $count3;
        }
}
?>
Необходимо что бы, если по определённому документу нет записей, то он не отображался, а если по определённому исполнителю во всех документах нет записей, то и исполнитель не отображался. Ниже я привёл пример изображений как сейчас [Безымянный.jpg], и как нужно что бы было [Итог.jpg]. Я начинал делать (то что в комментариях), в переменной $count3 рассчитывается количество записей, там они высчитываются по порядку (010050...) и соответствует каждой записи, но не знаю как это использовать, ну естественно если это поможет, а если нет, предложите пожалуйста другие варианты.
Миниатюры
БД, упорядочивание в таблице для печатной формы   БД, упорядочивание в таблице для печатной формы  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.04.2013, 02:33
Ответы с готовыми решениями:

Разметка для печатной формы
Здравствуйте! У меня такая проблема...:( Вывожу внутри дива с абсолютной позицией таблицу с...

Дополнительная форма для внешней печатной формы
Создала внешнюю печатную форму для документа. Но перед выводом данного отчета мне нужно у...

Процедуры и функции для внешней печатной формы счета КА 1.1 (8.2, УП)
Подскажите, пожалуйста, какие процедуры и функции должны быть во внешней печатной форме...

Как добавить реквизит на макет для печатной формы документа
Есть документ, использовала конструктор печати, и вынесла все необходимые реквизиты. Но в процессе...

5
Не мoдepaтор
 Аватар для MVS76
340 / 315 / 94
Регистрация: 07.07.2012
Сообщений: 1,040
Записей в блоге: 7
05.04.2013, 05:59 2
Я вам напишу вот такой пример, дальше разберетесь
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<table>
    <tr>  
        <td>Телефон:</td>
        <td><?= (isset($order['phone'])) ? $order['phone'] : 'или ничего' ?></td>
    </tr>
    <tr>
          <td>Фамилия:</td>  
          <td><?= (isset($order['lastname'])) ? $order['lastname'] : 'или ничего' ?></td>
    </tr>
    <tr>    
          <td>Имя:</td>
          <td><?= (isset($order['name'])) ? $order['name'] : 'или ничего' ?></td>
    </tr>
</table>
Вот это "echo" можно написать вот так внутри вашей таблицы:
PHP
1
2
3
<td>ИМЯ=<?= $order['name'] ?></td>
или
echo "'ИМЯ'='. $order['name']";
далее идет проверка на \есть или нет\
PHP
1
<?= (isset($order['name'])) ? 'есть 100% $order['name'] ' : '100% уверен что нет' ?>
или вот так:
PHP
1
2
3
4
5
6
<td>
<? if (isset($order['name'])): ?> // если есть значение в $order['name'], отображаем что внутри, если нет, на экране пусто
      <?= $order['name'] ?> // то есть отобразим имя
      <?= (strlen($order['address']) > 0) ? 'да, у имени есть адрес' : 'нет, адреса' ?>
<? endif; ?>
</td>
Добавлено через 15 минут
ну а как вывести все на экран без 100500 echo, я думаю вы знаете,
ну или так
PHP
1
2
3
4
5
6
7
echo $показать = '<table>
                   <tr>
                     <td>
               это показать.
                     </td>
                   </tr>
                 </table>';
1
1 / 1 / 0
Регистрация: 26.02.2013
Сообщений: 28
05.04.2013, 13:09  [ТС] 3
Цитата Сообщение от MVS76 Посмотреть сообщение
Я вам напишу вот такой пример, дальше разберетесь
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<table>
    <tr>  
        <td>Телефон:</td>
        <td><?= (isset($order['phone'])) ? $order['phone'] : 'или ничего' ?></td>
    </tr>
    <tr>
          <td>Фамилия:</td>  
          <td><?= (isset($order['lastname'])) ? $order['lastname'] : 'или ничего' ?></td>
    </tr>
    <tr>    
          <td>Имя:</td>
          <td><?= (isset($order['name'])) ? $order['name'] : 'или ничего' ?></td>
    </tr>
</table>
Вот это "echo" можно написать вот так внутри вашей таблицы:
PHP
1
2
3
<td>ИМЯ=<?= $order['name'] ?></td>
или
echo "'ИМЯ'='. $order['name']";
далее идет проверка на \есть или нет\
PHP
1
<?= (isset($order['name'])) ? 'есть 100% $order['name'] ' : '100% уверен что нет' ?>
или вот так:
PHP
1
2
3
4
5
6
<td>
<? if (isset($order['name'])): ?> // если есть значение в $order['name'], отображаем что внутри, если нет, на экране пусто
      <?= $order['name'] ?> // то есть отобразим имя
      <?= (strlen($order['address']) > 0) ? 'да, у имени есть адрес' : 'нет, адреса' ?>
<? endif; ?>
</td>
Добавлено через 15 минут
ну а как вывести все на экран без 100500 echo, я думаю вы знаете,
ну или так
PHP
1
2
3
4
5
6
7
echo $показать = '<table>
                   <tr>
                     <td>
               это показать.
                     </td>
                   </tr>
                 </table>';
Решил проблему, но теперь вот в чём вопрос, при проверке isset($row2) на есть ли значения, оно лишь в одном цикле работает, находит что оно пустое, а далее пробую в конце цикла где он заполняется сделать unset($row2), но при проверке на isset в последующем оно сново начинает выдовать лишние поля
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
$host = 'localhost';
$user = 'admin';
$password = 'admin';
$db = 'контроль_документов';
 
$connection = mysql_connect($host,$user,$password);
mysql_set_charset('cp1251',$connection);
if(!$connection || !mysql_select_db($db,$connection))
{
    exit(mysql_error());
}
$query = "SELECT * FROM исполнители ORDER BY `Код`";
$res = mysql_query($query);
while ($row = mysql_fetch_assoc($res))
{
    echo '<tr>';
        echo '<td valign="top" bgcolor="#eeeeee" colspan="2">'."Исполнитель: <u><b>".$row['Исполнители'].'</b></u></td>';
        echo '<td valign="top" bgcolor="#eeeeee"></td>';
        echo '<td valign="top" bgcolor="#eeeeee"></td>';
        echo '<td valign="top" bgcolor="#eeeeee"></td>';
        echo '<td valign="top" bgcolor="#eeeeee"></td>';
    echo '</tr>';
        $query1 = "SELECT документы.Код_документа as коддок, 
            вид_документов.Вид_документа as виддок, документы.Ном_документа 
            as номдок, документы.Дата as дата, исполнители.Исполнители as кемиздан, 
            документы.Содержание as содерж FROM вид_документов, документы, исполнители 
            WHERE вид_документов.Код_вида_документа = документы.Код_вида_документа AND исполнители.Код = документы.Кем_издан ORDER BY документы.Код_документа";
        $res1 = mysql_query($query1);
        while ($row1 = mysql_fetch_assoc($res1))
        {if (isset($row2)):
            echo '<tr><b>';
                echo '<td valign="top" colspan="2" width="50%"><b>';
                    echo $row1['содерж'];
                echo '</b></td>';
                echo '<td valign="top"><b>';
                    echo "№ ".$row1['номдок'];
                echo '</b></td>';
                echo '<td valign="top"><b>';
                    echo "От: ".$row1['дата'];
                echo '</b></td>';
                echo '<td valign="top" colspan="2"><b><center>';
                    echo $row1['кемиздан'];
                echo '<center></b></td>';
            echo '</tr>';endif;
            $query2 = "SELECT база.Код as код, база.Код_документа as код_док, документы.Содержание as сод, база.Ном_пункта as номпункт, база.Краткое_содержание as крсод,
                база.Исполнитель as исп, база.Срок_исполнения as срокисп, сроки.Поле1 as сроки, база.Срок_выполнения_ДО as сроквыпдо,
                база.Отметка_об_исполнении as отметка 
                FROM документы, база, сроки
                WHERE документы.Код_документа = база.Код_документа AND сроки.Код = база.Срок_выполнения AND документы.Содержание = '".$row1['содерж']."' AND база.Исполнитель LIKE '%".$row['Исполнители']."%' ORDER BY база.Ном_пункта";
            $res2 = mysql_query($query2);
            while ($row2 = mysql_fetch_assoc($res2))
            {
                echo '<tr>';    
                    echo '<td valign="top">';
                        echo "  п. ".$row2['номпункт']." ";
                    echo '</td>';
                    echo '<td valign="top">';
                        echo $row2['сод'];
                    echo '</td>';
                    echo '<td valign="top">';
                        echo $row2['исп'];
                    echo '</td>';
                    echo '<td valign="top">';
                    echo '</td>';
                    echo '<td valign="top">';
                        echo $row2['сроквыпдо'];
                    echo '</td>';
                echo '</tr>';
                unset($row2);}
                //$query3 = "SELECT COUNT(*) FROM документы, база, сроки
                //WHERE документы.Код_документа = база.Код_документа AND сроки.Код = база.Срок_выполнения AND документы.Содержание = '".$row1['содерж']."' AND база.Исполнитель LIKE '%".$row['Исполнители']."%' ORDER BY база.Ном_пункта";
                //$res3 = mysql_query($query3);
                //$count3 = mysql_fetch_row($res3);
                //$count3 = $count3[0];
                //echo $count3;
        }
}
?>
Добавлено через 33 минуты
А нет, ошибся, в первом цикле тоже не работает, документ просто напросто не отображается так как значение и так пустое

Добавлено через 2 часа 10 минут
Пробывал так же скрывать таблицу если сумма записей в запросе равна нулю задав id столбцам
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$query3 = "SELECT COUNT(*) FROM документы, база, сроки
                WHERE документы.Код_документа = база.Код_документа AND сроки.Код = база.Срок_выполнения AND документы.Содержание = '".$row1['содерж']."' AND база.Исполнитель LIKE '%".$row['Исполнители']."%' ORDER BY база.Ном_пункта";
                $res3 = mysql_query($query3);
                $count3 = mysql_fetch_row($res3);
                $count3 = $count3[0];
                if ($count3==0):?>
                    <script language="javascript">
                        var doc = document.getElementById('doc');
                        var baza = document.getElementById('baza');
                        doc.style.display='none';
                        baza.style.display='none';
                    </script><?php
                endif;
Но без успешно
0
Не мoдepaтор
 Аватар для MVS76
340 / 315 / 94
Регистрация: 07.07.2012
Сообщений: 1,040
Записей в блоге: 7
05.04.2013, 13:23 4
Почему не скрыть вот так, зачем такой велосипед
PHP
1
2
3
4
5
6
7
8
9
<table>
    <tr>  
      <td>
<? if (strlen($count3) > 0): ?>  // соблюдаем конструкцию  <? if (значение): ?> и не нужно всяких <?php 
      <?= $count3 ?> 
<? endif; ?>
       </td>
    </tr>
</table>
или вот
PHP
1
2
3
4
5
6
7
<table>
    <tr>  
      <td>
   <?= (strlen($count3) > 0) ? $count3 : 'пусто' ?>
       </td>
    </tr>
</table>
0
1 / 1 / 0
Регистрация: 26.02.2013
Сообщений: 28
05.04.2013, 14:19  [ТС] 5
Цитата Сообщение от MVS76 Посмотреть сообщение
Почему не скрыть вот так, зачем такой велосипед
PHP
1
2
3
4
5
6
7
8
9
<table>
    <tr>  
      <td>
<? if (strlen($count3) > 0): ?>  // соблюдаем конструкцию  <? if (значение): ?> и не нужно всяких <?php 
      <?= $count3 ?> 
<? endif; ?>
       </td>
    </tr>
</table>
или вот
PHP
1
2
3
4
5
6
7
<table>
    <tr>  
      <td>
   <?= (strlen($count3) > 0) ? $count3 : 'пусто' ?>
       </td>
    </tr>
</table>
Ну так в том то и дело что не выходит, $count3 рассчитываеться в последнем цикле и из за некаторых значений ($row1) переместить в начало его нельзя так как значений не от кудого будет брать, а условие нужно ставить опираясь на самый последний цикл, а то что скрывать нужно, стоит перед этим циклом, поэтому этим способом никак
0
1 / 1 / 0
Регистрация: 26.02.2013
Сообщений: 28
12.04.2013, 14:55  [ТС] 6
Есть 2-е таблицы "база" и "исполнители". В "база" поле "исполнитель". В "исполнители" поле "Исполнители".
В "база.Исполнители" данные например:
1. "Штаб, РОВД"
2. "ГАИ, Штаб"

В "исполнители.Исполнители" данные без запятых:
1. Штаб
2. РОВД
3. ГАИ
4. Страховая
5. Белтелеком

Нужно построит запрос, который будет выводить на экран только тех "исполнители.Исполнители", которые содержатся хотя бы в одной строке "база.Исполнители", если такого нет, то просто пропустить без вывода. Тоесть по данному примеру:
4. Страховая
5. Белтелеком
Просто не выведет.

Выведет на экран только:
1. Штаб
2. РОВД
3. ГАИ
Так как они есть в "база.Исполнители".
0
12.04.2013, 14:55
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.04.2013, 14:55
Помогаю со студенческими работами здесь

Не могу сделать нужный размер для печатной формы этикетки
Здравствуйте! Никак не могу сделать нужный размер для печатной формы этикетки. Я взял готовую...

1С ЗУП 3.1 Внешняя обработка печатной формы для Кадровый документ списком
Здравствуйте! Подскажите пожалуйста, кто знает, как правильно добраться до поля Сотрудник.Код (ниже...

Модуль менеджера для печатной формы. Вывод на печать данных одного документа.
Задача обстоит в том плане что при данном коде он на печать выводит абсолютно все документы. Хотя...

Закрытие формы документа из внешней печатной формы
Нужно после печати документа, закрыть его форму. Управляемое приложение. Никак не могу понять прошу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Создание макробота, как способа экономии времени и варианта ИИ.
Hrethgir 28.01.2025
Чисто теоретически, создание ИИ на ПК можно разделить на части. Создать бота отвечающего за железо (эмулирование вкл, выкл, мышь, клавиатура), другой бот осуществляет распознавание изображений,. . .
[Golang] 121. Best Time to Buy and Sell Stock
alhaos 28.01.2025
В этой задаче мы получаем слайс целых чисел, которые означают цену акции в разные моменты времени, и должны вернуть максимально возможную прибыль от купли продажи акции. / / . . .
Проектирование и моделирование
hw_wired 28.01.2025
Введение в моделирование Моделирование представляет собой один из фундаментальных методов научного познания, который позволяет изучать объекты и явления через создание их упрощенных аналогов. В. . .
Алгоритмы и исполнители
hw_wired 28.01.2025
Введение в алгоритмы В современном мире информационных технологий алгоритмы играют основополагающую роль в решении различных задач и автоматизации процессов. Алгоритм представляет собой точную. . .
Хранение информации
hw_wired 28.01.2025
Введение: Роль систем хранения информации в современном мире В современную эпоху цифровых технологий эффективное хранение информации становится одним из ключевых факторов успешного развития любой. . .
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru