如何从数据库中显示表中的数据?

时间:2015-08-06 07:54:29

标签: php html mysql

此代码计算数据库出生日期的年龄,但问题是当表中显示时,该年龄的位置在表外,有人可以帮我,这段代码

<?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>";
    }
?>

3 个答案:

答案 0 :(得分:1)

您已经echoumur函数的结果。但是在这个功能中你再次这样做了。

更改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>";
 ?>