此代码计算数据库出生日期的年龄,但问题是当表中显示时,该年龄的位置在表外,有人可以帮我,这段代码
<?php
include 'koneksi.php';
$sql=mysql_query("SELECT * FROM pasien");
function umur($tgl_lahir){
$parts = split('-', $tgl_lahir);
$thn_lahir='Year: ' + $parts[0];
$bln_lahir='Month: ' + $parts[1];
$tgl_lahir='Day: ' + $parts[2];
$tanggal_today = date('d');
$bulan_today=date('m');
$tahun_today = date('Y');
$harilahir=gregoriantojd($bln_lahir,$tgl_lahir,$thn_lahir);
$hariini=gregoriantojd($bulan_today,$tanggal_today,$tahun_today);
$umur=$hariini-$harilahir;
$tahun=$umur/365;
$sisa=$umur%365;
$bulan=$sisa/30;
$hari=$sisa%30;
echo floor($tahun).",".floor($bulan);
}
while ($row=mysql_fetch_array($sql)){
echo"<table border='1px'>";
echo "<tr>";
echo "<td width='50px'>".umur($row['tgl_lahir'])."</td>";
echo "<td>".$row['nama']."</td>";
echo "</tr>";
echo"</table>";
}
?>
答案 0 :(得分:1)
您已经echo
了umur
函数的结果。但是在这个功能中你再次这样做了。
更改umur
功能最后一行
echo floor($tahun).",".floor($bulan);
到
return floor($tahun).",".floor($bulan);
将<table>
和</table>
移到while
之外。否则你会为每一行都有一个新表。
答案 1 :(得分:1)
只需在echo"<table border='1px'>";
循环前移动while
,然后在
echo"</table>";
循环后移动while
。
将您的代码更新为
<?php
include 'koneksi.php';
$sql=mysql_query("SELECT * FROM pasien");
function umur($tgl_lahir)
{
$parts = split('-', $tgl_lahir);
$thn_lahir='Year: ' + $parts[0];
$bln_lahir='Month: ' + $parts[1];
$tgl_lahir='Day: ' + $parts[2];
$tanggal_today = date('d');
$bulan_today=date('m');
$tahun_today = date('Y');
$harilahir=gregoriantojd($bln_lahir,$tgl_lahir,$thn_lahir);
$hariini=gregoriantojd($bulan_today,$tanggal_today,$tahun_today);
$umur=$hariini-$harilahir;
$tahun=$umur/365;
$sisa=$umur%365;
$bulan=$sisa/30;
$hari=$sisa%30;
return floor($tahun).",".floor($bulan);
}
echo"<table border='1px'>";
while ($row=mysql_fetch_array($sql))
{
echo "<tr>";
echo "<td width='50px'>".umur($row['tgl_lahir'])."</td>";
echo "<td>".$row['nama']."</td>";
echo "</tr>";
}
echo"</table>";
建议在函数中使用return
而不是echo
来返回值。您可以使用echo umur($row['tgl_lahir']);
打印返回的函数值。
答案 2 :(得分:0)
试试这个:你需要从函数返回值而不是回显它
<?php
include 'koneksi.php';
$sql=mysql_query("SELECT * FROM pasien");
function umur($tgl_lahir){
$parts = split('-', $tgl_lahir);
$thn_lahir='Year: ' + $parts[0];
$bln_lahir='Month: ' + $parts[1];
$tgl_lahir='Day: ' + $parts[2];
$tanggal_today = date('d');
$bulan_today=date('m');
$tahun_today = date('Y');
$harilahir=gregoriantojd($bln_lahir,$tgl_lahir,$thn_lahir);
$hariini=gregoriantojd($bulan_today,$tanggal_today,$tahun_today);
$umur=$hariini-$harilahir;
$tahun=$umur/365;
$sisa=$umur%365;
$bulan=$sisa/30;
$hari=$sisa%30;
return floor($tahun).",".floor($bulan);
}
echo"<table border='1px'>";
while ($row=mysql_fetch_array($sql)){
echo "<tr>";
echo "<td width='50px'>".umur($row['tgl_lahir'])."</td>";
echo "<td>".$row['nama']."</td>";
echo "</tr>";
}
echo"</table>";
?>