почему у меня не работает вывод таблицы базы данных в этом php скрипте? 
<?php
function vid_content($table_name, $db_conn) {

    $res = $db_conn->query('SELECT * FROM ' . $table_name . ';');

    print "<table>\n";
        print "<thead>\n";
            print "<tr>\n";
                for ($x = 0; $x < mysqli_num_fields($res); $x++) {
                    $col_name = $res->fetch_field_direct($x)->name;
                    print "<th>" . "$col_name" . "</th>\n";
                }
            print "</tr>\n";
        print "</thead>\n";
        print "<tbody>\n";
            foreach ($res as $row) {
                print "<tr>\n";
                    foreach($row as $cell) {
                        print "<td>$cell</td>\n";
                    }
                print "</tr>\n";
            }
        print "</tbody>\n";
    print "</table>\n";
}

function get_flag_description($flag) {
    $out = "";

    if ($flag & MYSQLI_NOT_NULL_FLAG) {
        $out .= ' NOT NULL';
    }

    if ($flag & MYSQLI_PRI_KEY_FLAG) {
        $out .= ' PRIMARY KEY';
    }

    if ($flag & MYSQLI_UNIQUE_KEY_FLAG) {
        $out .= ' UNIQUE INDEX';
    }

    if ($flag & MYSQLI_MULTIPLE_KEY_FLAG) {
        $out .= ' UNIQUE INDEX';
    }

    if ($flag & MYSQLI_BLOB_FLAG) {
        $out .= ' UNIQUE INDEX';
    }

    if ($flag & MYSQLI_UNSIGNED_FLAG) {
        $out .= ' UNIQUE INDEX';
    }

    if ($flag & MYSQLI_ZEROFILL_FLAG) {
        $out .= ' UNIQUE INDEX';
    }

    if ($flag & MYSQLI_AUTO_INCREMENT_FLAG) {
        $out .= ' AUTO_INCREMENT';
    }

    if ($flag & MYSQLI_TIMESTAMP_FLAG) {
        $out .= ' NUMERIC';
    }

    if ($flag & MYSQLI_SET_FLAG) {
        $out .= ' UNIQUE INDEX';
    }

    if ($flag & MYSQLI_BINARY_FLAG) {
        $out .= ' UNIQUE INDEX';
    }

    if ($flag & MYSQLI_ENUM_FLAG) {
        $out .= ' UNIQUE INDEX';
    }

    if ($flag & MYSQLI_NUM_FLAG) {
        $out .= ' NUMERIC';
    }

    return $out;
}

function vid_structure($table_name, $db_conn) {
    $res = $db_conn->query('SELECT * FROM ' . $table_name . ';');

    $mysql_data_type_hash = array(
        1=>'tinyint',
        2=>'smallint',
        3=>'int',
        4=>'float',
        5=>'double',
        7=>'timestamp',
        8=>'bigint',
        9=>'mediumint',
        10=>'date',
        11=>'time',
        12=>'datetime',
        13=>'year',
        16=>'bit',
        253=>'varchar',
        254=>'char',
        246=>'decimal'
    );

    print "<div>";
    for ($x = 0; $x < mysqli_num_fields($res); $x++) {
        $column = $res->fetch_field_direct($x);
        $type = $mysql_data_type_hash[$column->type];
        $len = $column->length;
        $name = $column->name;
        $flags = get_flag_description($column->flags);

        print "<span style='display: block;'>$type $len $name $flags</span>\n";
    }
    print "</div>";
    print "</html>";
}
?>

<div>
    <? if (array_key_exists('structure', $_GET)) {
            foreach ($_GET['structure'] as $value) {
                print "<html><h3>Структура таблицы" $value "</h3>\n";
                vid_structure($value, $conn);
            }
        }

        if (array_key_exists('content', $_GET)) {
            foreach ($_GET['content'] as $value) {
                print "<h3>Содержимое таблицы $value</h3>\n";
                vid_content($value, $conn);
            }
        }
    ?>
</div>

<a href="task1.php">Возврат к выбору таблицы</a>

вместо данных выводится следующее:
Структура таблицы" $value "
\n"; vid_structure($value, $conn); } } if (array_key_exists('content', $_GET)) { foreach ($_GET['content'] as $value) { print "
Содержимое таблицы $value
\n"; vid_content($value, $conn); } } ?>
Возврат к выбору таблицы