开发者

MySQL database table to HTML table

Here the value of $table will be passed from another file and it will be a table name in a database.

With that table name ($table) am trying to fetch its column names and all the values in the table and make the table look like an actual one we see in phpMyAdmin.

As a result of the code below. I can only get the column names. But not the data. Please tell me what should i do to perform the task of showing the datas in the table

   <table cellpadding="0" cellspacing="0" border="0" width="100%" class=开发者_C百科"display" rel="datatable">
    <thead>
        <tr>


    <?php
    //echo"select * from $table";
    $qq=mysql_query("show columns from $table");
    if(mysql_num_rows($qq)>0){
    //$i=1;
    echo '<tr>';
        while($rs = mysql_fetch_row($qq))
        {
        $sel=mysql_query("select * from $table");
        $fetch=mysql_fetch_object($sel);
        //while($fetch=mysql_fetch_object($sel))
        //{
        ?>  
            <td><?php echo $fetch->$rs[0];?></td>
    <?php
        //}
    //$i++;
        }
        echo '</tr>';
    }
    else    
    {
    ?>      
            <tr>
                <td colspan="11">No data to display</td>
            </tr>
    <?php
    }
    ?>  
    </tbody>
</table>


Yes only columns will be printing because you are printing $rs[0];?> where $rs holds object for mysql_query qq and it holds your column query only not

"select * from $table"

this.

Why dont you try displaying columns as a single row in html table and then try displaying data from other php set with seperate query structure . Hope this way it helps.


I coudn't fix your code because it was getting ugly, so i remade it:

php:

function mysql_fetch_all($res) {
    $result = array();
    while ($row = mysql_fetch_row($res)) {
        $result[] = $row;
    }
    return $result;
}

function getColumnsAndData($table) {
    $table = mysql_real_escape_string($table);
    $q1 = mysql_query("show columns from $table");
    $q2 = mysql_query("select * from $table");
    return array(mysql_fetch_all($q1), mysql_fetch_all($q2));
}

list($columns, $data) = getColumnsAndData($table);
?>

html

<table cellpadding="0" cellspacing="0" border="0" width="100%" class="display" rel="datatable">
    <thead>
        <tr>
            <?php foreach ($columns as $column): ?>
                <td><?php echo $column[0] . ' ' . $column[1] ?></td>
            <?php endforeach; ?>
        <tr>
    </thead>
    <tbody>
        <?php if (count($data) > 0): ?>
            <?php foreach ($data as $row): ?>
                <tr>
                    <?php foreach ($row as $value): ?>
                        <td><?php echo $value ?></td>
                    <?php endforeach; ?>
                <tr>
                <?php endforeach; ?>
            <?php else: ?>
            <tr>
                <td>No data to display</td>
            </tr>
        <?php endif; ?>
    </tbody>
</table>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜