gpt4 book ai didi

php - 计算两个字段有问题

转载 作者:行者123 更新时间:2023-11-29 00:25:26 25 4
gpt4 key购买 nike

请帮忙?我有一个带有记录表的数据库。我试图计算以获得特定数字的两个字段不起作用。我真的是 php 的新手,希望得到任何帮助。

我的表有 2 个字段,名为 "startdate""terminationdate" 这两个是我想在为它们完成计算后回显的两个 p>

代码:

    <?php
include 'core/init.php';
protect_page();
include 'includes/overall/header.php';
error_reporting(1);
?>
<div class="article">
<h2>
<br>
SEARCH A REFERENCE
<br>
</h2>
</center>

<body>
<div id="formsearch">
<br>
<form method="post" action="" name="form1" id="form1" >

Enter the ID Number
<br><br>
<b>Search Record </b> <input type="text" name="term" /><br />
<br>
<input type="submit" name="submit" value="Search" class="btn" />
</form>
</div>
<h3> <center> Search Result (s) </h3>
<?php

if ($_REQUEST['submit']) {

$term = $_POST['term'];

$row ['employerid'] == $user_data ['user_id'];
$XX = "<br><br><div class='messagebox'><h2> <center> Oops! </h2> <p>We were only to retrieve a partial record on <strong>$term</strong> you have entered. Please make use of our contact form if you would like us to get you your reference. Be sure to enter the three required fields. <a href='Mailforms/refrequest.php' class='lightbox'>Click Here!</a> or to validate the id <a href='idverification.php'> Click here</a></p>
<br />
</div>";
$sql = mysql_query("SELECT idnumber,
firstname,
lastname,
companyname,
jobtitle,
dismissal,
floor(terminationdate - startdate) + ' days ' +
MOD(FLOOR ((terminationdate - startdate) * 24), 24) + 'hours' +
MOD (FLOOR ((terminationdate - startdate) * 24 * 60), 60) + ' minutes ' 'time_diff'
FROM ref_employees
WHERE idnumber= '$term'")
or die('Error in query : $sql. ' .mysql_error());


if (mysql_num_rows($sql) > 0 ) {
while ($row = mysql_fetch_array($sql)){
if ($row ['employed'] == '1') {
echo '<h4>Currently Employed By : '.$row['companyname'];
echo '</h4> ';
echo '<a href="#">Any doubts? Enquire about this candidate</a> ';
}

if ($row ['employed'] == '0') {
echo ' <h4>Some Available Options For:</h4>';
include 'includes/admenu.php';
echo '<h4>Not Currently employed '.$row['companyname'];
echo '</h4> ';

}

echo "<table border='1' cellpadding='10'>";
echo "<tr> <th>ID Number</th> <th>First Name</th> <th>Last Name</th><th>company</th> <th>Job Title</th> <th>Period</th><th>Reason for dismissal</th><th></th><th></th></tr>";
echo "<tr>";
echo '<td>' . $row['idnumber'] . '</td>';
echo '<td>' . $row['firstname'] . '</td>';
echo '<td>' . $row['lastname'] . '</td>';
echo '<td>' . $row['companyname'] . '</td>';
echo '<td>' . $row['jobtitle'] . '</td>';
echo '<td>' .($row['startdate'] + $row['terminationdate']).'</td>';
echo '<td>' . $row['dismissal'] . '</td>';
echo '<td><a href="editemp.php?idnumber=' . $row['idnumber'] . '">Achievements</a></td>';
echo '<td><a href="delete.php?idnumber=' . $row['idnumber'] . '">training</a></td>';
echo "</tr>";
}

// close table>
echo "</table>";



}
}
else
{
print ("$XX");
}
mysql_free_result($sql);
mysql_close($connection);


?>
<div>
</div>

<?php
include 'includes/overall/footer.php'; ?></div>

最佳答案

您添加的是数组的索引而不是此处的值:

echo '<td>' . $row['$sdate+$edate'] . '</td>';

我建议您在获取之前对 MySQL 查询进行计算,并显式定义所有列名,例如:

SELECT startdate + terminationdate WHERE....

或者像这样用 PHP 做:

echo '<td>' .($row['startdate'] + $row['terminationdate']).'</td>';

现在据我了解,您正在尝试使用 TIMEDIFF() 计算两个日期的差异以获得持续时间。在这里:

SELECT idnumber, firstname, lastname, companyname,jobtitle,dismissal TIMEDIFF(startdate,terminationdate) time_diff WHERE idnumber= '$term'

在 PHP 中:

$sql = mysql_query("SELECT idnumber, 
firstname,
lastname,
companyname,
jobtitle,
dismissal,
floor(terminationdate - startdate) + ' days ' +
MOD(FLOOR ((terminationdate - startdate) * 24), 24) + 'hours' +
MOD (FLOOR ((terminationdate - startdate) * 24 * 60), 60) + ' minutes ' 'time_diff'
FROM ref_employees
WHERE idnumber= '$term'")
or die('Error in query : $sql. ' .mysql_error());

在您的评论中,您希望使用 php 计算它。在这里:

$date1 = $row['startdate'];
$date2 = $row['terminationdate'];

$diff = abs(strtotime($date2) - strtotime($date1)); // change here if plus or minus

$years = floor($diff / (365*60*60*24));
$months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));

* 注意mysql扩展名is now deprecated and will be removed sometime in the future .那是因为它很古老,充满了不良做法并且缺乏一些现代特征。不要用它来编写新代码。使用 PDOmysqli_*反而。您的查询容易出现 SQL Injection .

关于php - 计算两个字段有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19152741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com