проблема с датой

  • Автор темы samolisov
  • 15
  • Обновлено
  • 15, May 2024
  • #1
Привет ребята, подскажите пожалуйста, что я делаю не так. Поля таблицы моей тестовой базы данных имеют «payrec» имеет «p», «amtdue» пусто, «recur» имеет «N», а «срочный срок» истек. --------------------------------- код:

 <html><head>

<style>

[USER=6127]@page[/USER] { size 8.5in 11in; margin: 2cm }

div.page { page-break-after: always }

</style>

</head><body><center>

<div class="page">

<?php

//Open a new connection to the MySQL server

require_once "getacctdb.php";

//MySqli Select Query

$results = $mysqli->query (SELECT acctno, recur, pd, payrec, bname, datepaid, amtdue,

DATEDIFF(CURDATE(),duedate) AS dayslate, FROM accttbl` WHERE payrec = 'p' AND amtdue != '' AND

recur = 'N'";

echo date('m/d/y');

?>

<font size=+1><b><center> Accounts Payable Report</font></center></b></b><br />

<table cellspacing=0 cellpadding=0 border=1>

<thead>

<tr>

<th bgcolor="#ccffff">acct#</th>

<th bgcolor="#ccffff">creditor</th>

<th bgcolor="#ccffff">due date</th>

<th bgcolor="#ccffff">days late</th>

<th bgcolor="#ccffff">amt due</th>

</tr>

<?php

while($row = mysql_fetch_array($result))

{

$totdue += $row['amtdue'];

echo '

<tr>

<td>', $row['acctno'], '</td>

<td>', $row['bname'], '</td>

<td>', $row['duedate'], '</td>

<td>', $row['dayslate'], '</td>

<td align=right class="currency">$'.number_format($row['amtdue'],2).'</td>

</tr>';

}

echo '

<tr>

<th bgcolor="#ccffff" scope="row" colspan="7">Grand Total:</th>

<td bgcolor="#FFD4D4" class="currency">$'.number_format($totdue, 2, '.', ''), '</td>

</tr>

</table>';

echo "Page 1";

?>

</div>

<div class="page">

<?php

echo "Page 2";

mysql_close();

?>

</body></html>
PHP: ---------------------------------- результат: запрос ("SELECT acctno, recur, pd, payrec, bname, DATEDIFF(CURDATE(),duedate) AS daylate, datepaid, amtdue FROM accttbl` WHERE payrec = 'p' AND amtdue != '' AND recur = 'N'" ); эхо-дата('м/д/гг'); ?>

Отчет о кредиторской задолженности

'; } эхо '

номер счета кредитора срок погашения дней просрочка сумма платежа

', $row['acctno'], ' ', $row['bname'], ' ', $row['duedate'], ' ', $row['dayslate'], ' $'.number_format($ row['amtdue'],2).'

Общий итог: $'.number_format($totdue, 2, '.', ''), '

'; эхо «Страница 1»;

samolisov


Рег
01 Jan, 2011

Тем
1

Постов
3

Баллов
13
  • 04, Jun 2024
  • #2
$sql = "ВЫБЕРИТЕ
 acctno
,
 recur
,
 pd
,
 payrec
,
 bname
,
 datepaid
,
 amtdue
, DATEDIFF(CURDATE(),
 duedate
) AS
 dayslate
FROM
 accttbl
ГДЕ
 payrec
= 'p' И
 amtdue
!= '' И
 recur
= 'N'"; $results = $mysqli->query ($sql); производит: запрос ($ SQL); эхо-дата('м/д/гг'); ?>

Отчет о кредиторской задолженности

'; } эхо '

номер счета кредитора срок погашения дней просрочка сумма платежа

', $row['acctno'], ' ', $row['bname'], ' ', $row['duedate'], ' ', $row['dayslate'], ' $'.number_format($ row['amtdue'],2).'

Общий итог: $'.number_format($totdue, 2, '.', ''), '

'; эхо «Страница 1»; ?>
 

Андрей Четвериков


Рег
20 Dec, 2012

Тем
0

Постов
2

Баллов
2
  • 05, Jun 2024
  • #3
В вашем запросе нет ) в конце.

Ваша строка не похожа на строку.

Ваши ` не совпадают.

У вас стоит запятая после Daylate
 $sql = "SELECT `acctno`, `recur`, `pd`, `payrec`, `bname`, `datepaid`, `amtdue`,
DATEDIFF(CURDATE(),`duedate`) AS `dayslate` FROM `accttbl` WHERE `payrec` = 'p' AND `amtdue` != '' AND
`recur` = 'N'";
$results = $mysqli->query ($sql);
PHP: должно быть
 $results = $mysqli->query ("SELECT `acctno`, `recur`, `pd`, `payrec`, `bname`, `datepaid`, `amtdue`, DATEDIFF(CURDATE(),`duedate`) AS `dayslate` FROM `accttbl` WHERE `payrec` = 'p' AND `amtdue` != '' AND `recur` = 'N'");
PHP: альтернативный способ записи:
 $results = $mysqli->query (SELECT acctno, recur, pd, payrec, bname, datepaid, amtdue, DATEDIFF(CURDATE(),duedate) AS dayslate, FROM accttbl` WHERE payrec = 'p' AND amtdue != '' AND recur = 'N'";
PHP: Да, у вас есть две строки и дополнительная переменная, но это более читабельно, отлаживаемо и понятно новичку.

Вы не останетесь им надолго, но несколько дополнительных шагов сделают жизнь проще. Если проблема связана с запросом, рекомендуется скопировать ее в phpMyAdmin (или любой другой инструмент, который вы используете) и посмотреть, запускается ли она там.
 

Doom1989


Рег
28 Oct, 2014

Тем
0

Постов
2

Баллов
2
Тем
49554
Комментарии
57426
Опыт
552966

Интересно