Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 01.02.2019
Сообщений: 12
PostgreSQL

Привязка разницы дат к выборке из таблицы

01.02.2019, 22:37. Показов 1206. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток! Подскажите начинающему, есть выборка из нескольких таблиц, в первом столбце таблицы есть дата в формате "2018-08-01" нужно сравнить текущую дату и дату из таблицы и поместить в отдельный столбец.
Голова уже кипит,
PHP/HTML
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
<?php
// —cоединение, выбор базы данных
$dbconn = pg_connect("host=localhost dbname=1  user=1 password=1111")
    or die('Could not connect: ' . pg_last_error());    
    $result = pg_query( "SELECT zayavka.data_vvoda, street.street, podezd.n_dom, abonenti.n_kvartiri, gorod.city, zayavka.text_zayavki, abonenti.n_phone, zayavka.status FROM d.zayavka  
    INNER JOIN d.podezd ON zayavka.id_podezd = podezd.id_podezd 
    INNER JOIN d.street ON podezd.id_street = street.id_street  
    INNER JOIN d.gorod ON street.id_gorod = gorod.id_gorod 
    INNER JOIN d.abonenti ON zayavka.id_abonenta = abonenti.id_abonenta WHERE status='f' ORDER BY zayavka.data_vvoda ASC ");
  if (!$result) {
  echo "Произошла ошибка.\n";
  pg_close($dbconn);
  exit;
}
error_reporting(0);
 
?>
</h1></dl>
<table border="3">
<h1>Список всех невыполненых заявок:</h1>
        <tr>
            <td><strong>Дата заявки</strong></td>
            <td><strong>Улица</strong></td>
            <td><strong>Дом</strong></td>
            <td><strong>Квартира</strong></td>
            <td><strong>Город</strong></td>
            <td><strong>Текст заявки</strong></td>
            <td><strong>Телефонн</strong></td>
            <td><strong>В работе</strong></td>           
        </tr>
<?php
 
 
 
?>      
<?php
while ($row = pg_fetch_row($result) ) { 
 
    echo "<tr>";
    echo "<td>". $row[0]."</td>";
    echo "<td>". $row[1]."</td>";
    echo "<td>". $row[2]."</td>";
    echo "<td>". $row[3]."</td>";
    echo "<td>". $row[4]."</td>";
    echo "<td>". $row[5]."</td>";
    echo "<td>". $row[6]."</td>";
    echo "<td>". $row[0]."</td>";   
  echo "</tr>";
}
echo "</table>";
Как вычислить дату я понимаю, а вот как ее поместить в отдельный столбик и привязать выборке из таблицы понятие не имею.
Помогите пожалуйста,целый день сегодня голову ломаю.

Добавлено через 9 минут
Извиняюсь база POSTQRESQL.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.02.2019, 22:37
Ответы с готовыми решениями:

Расчёт разницы дат в БД
Назрел новый вопрос: Имеется БД созданная в MS Access Три столбца - 1 Событие 2 Дата 3 Количество дней с предыдущего события ...

Вычисление разницы дат
Имеется код: char firstDate = &quot;2015-07-09&quot;; char secondDate = &quot;2015-07-07&quot;; char* format = &quot;%Y-%m-%d&quot;; struct tm tm; ...

Вывод разницы дат
Скажите пожалуйста как вывести разницу всех дат. Например у меня есть дата 19.03.2013 записана в echo &quot;&lt;input...

10
0 / 0 / 0
Регистрация: 01.02.2019
Сообщений: 12
05.02.2019, 11:12  [ТС]
Что никто не поможет?
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
05.02.2019, 13:53
Цитата Сообщение от EvGeniusKRM Посмотреть сообщение
Что никто не поможет?
я даже не понял что надо сделать

если нужна выборка по сегодняшней дате то делайте это в запросе, если нужна выборка по определенной дате то подставляйте дату в запрос из формы, например добавьте сюда
Цитата Сообщение от EvGeniusKRM Посмотреть сообщение
WHERE status='f' ORDER BY zayavka.data_vvoda ASC ");
SQL
1
AND zayavka.data_vvoda='".$_POST['DATE']."'
по поводу поместить в отдельную ячейку, добавьте в таблицу еще одно поле и туда пишите эту дату
0
0 / 0 / 0
Регистрация: 01.02.2019
Сообщений: 12
08.02.2019, 01:56  [ТС]
С выборкой разобрался, теперь вопрос в другом. Как сделать чтобы строка таблицы при выборке подсвечивалась определенным цветом bgcolor в зависимости от значения в таблице?
Для этого создал специальный столбец 'ne_podtvergdena' integer NOT NULL DEFAULT 0,. К примеру если при выборке значение этого столбца 1 - строка зеленая, а если 0 то красная?
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
10.02.2019, 22:29
EvGeniusKRM, тут уже при выводе данных надо это делать
PHP
1
2
$r = ($значениеБД == $1) ? 'green' : 'red';
//ну а дальше подставляем $r в таблицу
1
0 / 0 / 0
Регистрация: 01.02.2019
Сообщений: 12
11.02.2019, 22:52  [ТС]
Спасибо, решил вот таким способом if($row[9]==0){$bg='';} elseif($row[9]==1){$bg='#98FB98';}
else{$bg='';};

Теперь вопрос в следующем. Есть выборка из таблицы в которой один столбик равен сумме нескольких значений из таблицы умноженных друг на друга $sum = ($month)*($row[4])-($row[5]); Как сделать так чтобы выборка из таблицы была только тех значений которые больше $sum. ? Не могу въехать как прописать WHERE т.к. этой суммы нет ни в одной колонке таблицы.
Вложение 1011037
Миниатюры
Привязка разницы дат к выборке из таблицы  
0
0 / 0 / 0
Регистрация: 01.02.2019
Сообщений: 12
12.02.2019, 00:00  [ТС]
Я высчитываю кол-во месяцев от колонки даты заключения договора(она есть в таблице) до текущей даты, умножаю их на $ROW[4](сумма тарифа она тоже есть в другой таблице которая присоединена средствами JOIN) и отнимаю $ROW[5] (сумму всех оплат) которая тоже есть в таблице. Как Задать условия чтобы появлялись все абоны у которых на счету было бы больше или меньше ну скажем значения 100.????

Добавлено через 55 минут
Все , решил. Сделал отдельную таблицу куда внес результат полученный при выборке и всех арифметических вычислениях а потом сделал еще одну выборку. Всем спасибо все сделал.
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
12.02.2019, 10:35
зачем такой велосипед?
Цитата Сообщение от EvGeniusKRM Посмотреть сообщение
if($row[9]==0){$bg='';} elseif($row[9]==1){$bg='#98FB98';}
else{$bg='';};
так приятней
PHP
1
$bg = ($row[9] == 1) ? '#98FB98' : '';
ну или так как Вы писали, но короче:
PHP
1
if($row[9]==1){$bg='#98FB98';} else {$bg='';}
0
0 / 0 / 0
Регистрация: 01.02.2019
Сообщений: 12
13.02.2019, 11:41  [ТС]
Сделал именно так if($row[9]==0){$bg='';} elseif($row[9]==1){$bg='#98FB98';}
else{$bg='';}; потому что есть еще другие цвета которые зависят от других значений.
Не подскажете как сделать несколько dropbox с выборкой из нескольких таблиц зависящих друг от друга.
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
$dbconn = pg_connect("******")
    or die('Could not connect: ' . pg_last_error());
$result = pg_query( "SELECT id_gorod, city FROM domofon.gorod");
if (!$result) {
  echo "Произошла ошибка.\n";
  pg_close($dbconn);
  exit;
}
error_reporting(0);
echo "<select name=gorod value=''>Dropdown</option>";
while($row = pg_fetch_row($result)) {
    $id_gorod =$row[0];
  echo "<option value=' ".$row[1]." '>".$row[1]."</option>";
$id_gorod =$row[0];
 
  }
echo "</select>";
 
?>
<?php   
// —cоединение, выбор базы данных
$dbconn = pg_connect("*****")
    or die('Could not connect: ' . pg_last_error());
    // —выбор абона с текущим лицевым счетом
    $result = pg_query( "SELECT street FROM domofon.street WHERE id_gorod = $id_gorod ");
if (!$result) {
  echo "Произошла ошибка \n";
  pg_close($dbconn);
  exit;
}
error_reporting(0);
echo "<select name=gorod value=''>Dropdown</option>";
while($row = pg_fetch_array($result)) {
  echo "<option value=' ".$row[0]." '>".$row[0]."</option>";
}
echo "</select>";
?>
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
13.02.2019, 16:56
Цитата Сообщение от EvGeniusKRM Посмотреть сообщение
Не подскажете как сделать несколько dropbox с выборкой из нескольких таблиц зависящих друг от друга.
Делаете несколько селектов потом отлавливаем AJAX событие на этом селекте и обновляете контент с параметрами всех селектов
0
0 / 0 / 0
Регистрация: 01.02.2019
Сообщений: 12
18.02.2019, 19:52  [ТС]
Подскажите по добавлению данных в таблицу.
Это через скрипт работает
SQL
1
2
3
4
5
6
7
INSERT INTO domofon.zayavka(
            id_zayavki, id_podezd, id_abonenta, text_zayavki, data_vvoda, 
            STATUS, data_vipolneniya, chto_sdelsno, id_sotrudnika, ne_podtvergdena, 
            prioritet)
    VALUES (850, 1, 100010, 'fdgdfg', '2019-02-18', 
            'f', NULL, NULL, NULL, 0, 
            0);
А через php это не работает:
PHP
1
2
3
4
5
6
7
$query ="INSERT INTO domofon.zayavka(
            id_zayavki, id_podezd, id_abonenta, text_zayavki, data_vvoda, 
            status, data_vipolneniya, chto_sdelsno, id_sotrudnika, 
            ne_podtvergdena, prioritet)
    VALUES (850, 1, 100010, 'fdgdfg', '2019-02-18', 
            'f', null, null, null, 0, 
            0)";
Что я делаю не так? Ошибок браузер не выводит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.02.2019, 19:52
Помогаю со студенческими работами здесь

CHECK разницы дат
Хочу сравнить две даты с помощью ограничения CHECK, но компилятор выдаёт ошибку. DATEDIFF(year, , ) &gt; 18 DATEDIFF же возвращает...

Функция подсчета разницы дат
Помогите разобраться с функцией, проект не компилируется. procedure TForm1.Button1Click(Sender: TObject); var BeginDate, EndDate:...

Вывод разницы дат в минутах
Здравствуйте. Задача простая, но что-то никак не может дойти решение... :wall: Есть две даты (DateTime), надо из одной вычесть другую...

Вычисление разницы дат в Паскале
Подскажите как в Турбо Паскале вычислить срок поездки если введены даты начала и конца. В каком формате лучше задавать даты и как точно...

Операция с вычислением разницы дат
Здравствуйте. У меня есть две колонки DateTime. Мне нужно из одной отнять другую и вывести результат в минутах. На пример есть вот...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru