大家好,我在这里有我的代码,可以从存储在我的数据库中的出生日期获取年龄。
$connect=mysql_connect("localhost","root","");
mysql_select_db("mydb",$connect);
$query = "select date_format(now(), '%Y') - date_format(dob, '%Y') - (date_format(now(), '00-%m-%d') < date_format(dob, '00-%m-%d'))
as age from data";
$result = mysql_query($query);
$values = mysql_fetch_assoc($result);
$age = $values['age'];
$query="select * from data";
$result=mysql_query($query);
if(mysql_num_rows($result)>0){
echo "<table align='center' border='1'>";
echo "<tr>";
echo "<th>id</th>";
echo "<th>Last Name</th>";
echo "<th>First Name</th>";
echo "<th>Age</th>";
echo "</tr>";
while($row=mysql_fetch_array($result)){
echo "<tr>";
echo "<td>".$row['id']."</td>";
echo "<td>".$row['lname']."</td>";
echo "<td>".$row['fname']."</td>";
echo "<td>".$age."</td>";
echo "</tr>";
}
echo "</table>";
}
所有数据均已获取,但唯一的问题是第一行的年龄与其余数据相同。我的代码有什么问题吗?任何人都可以帮忙,谢谢。
最佳答案
您正在从值数组中打印预取的年龄。
而是从当前行读取并用于显示。
如下更改您的 SQL 查询:
$query = "select id, lname, fname,
date_format(now(), '%Y') - date_format(dob, '%Y')
- ( date_format(now(), '00-%m-%d')
< date_format(dob, '00-%m-%d'))
as age
from data";
更改:
echo "<td>".$age."</td>";
致:
echo "<td>".$row['age']."</td>";
关于php - 计算年龄 Sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28060931/