php - 计算年龄 Sql 查询

标签 php mysql

大家好,我在这里有我的代码,可以从存储在我的数据库中的出生日期获取年龄。

$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/

相关文章:

php - 从 Zend Framework 应用程序获取所有模块、 Controller 和操作

mysql - Mariadb except 语句错误

mysql - MYSQL 中的大小写敏感性和索引

sql - ms-access:从不存在的表中选择

mysql - 数据未在ajax solr中建立索引

php - 使用php根据MYSQL中的用户输入检索列名

PHP、MySQL - 登录\注销问题,仅在第二次尝试后才能登录

php - Codeigniter: session 无法在实时网站上运行

php - 检查 boolean 值是真还是假

mysql - 无法连接到 '127.0.0.1' (61) 上的 MySQL 服务器