Вывеси таблицу MySQL на страницу HTML

190
12 марта 2018, 00:15

Всем привет) Помогите вывести таблицу с базы данных на хтмл с помощью пхп) Вот такая таблица должна получится

Мой код:

    <?php
define(HOST, 'localhost');
define(USER, 'root');
define(PASSWORD, '');
define(DB_NAME, 'test');
$link = mysqli_connect(HOST, USER, PASSWORD, DB_NAME) or die(mysqli_connect_error($link));
mysqli_query($link, "SET NAMES 'utf8'");
$query = "SELECT * FROM workers";
$result = mysqli_query($link, $query) or die(mysqli_error($link));
$num_rows = mysqli_num_rows($result);
mysqli_close($link);
?>
<table cellpadding="5" cellspacing="0" border="1">
<?php   
while ($row = mysqli_fetch_assoc($result) ) {
    $mass[] = $row;
}
    foreach ($mass as $key => $value) {
        echo "<tr>";
        foreach ($value as $subkey =>  $subvalue) {
            echo "<td>".$subvalue."<td>";
        }
        echo "</tr>";
    }
?>
</table>

Вот то что у меня получается:

Здесь заметны лишние ячейки(откуда они не понимаю( и заголовки столбцов пытался вывеси тегом создав поверх такие же 2 массива, но в общем ничего хорошего с этого не поучилось)

Answer 1

Добился желаемого результата. Но всё как-то криво) Может кто-то подскажет как упростить

    <?php
define(HOST, 'localhost');
define(USER, 'root');
define(PASSWORD, '');
define(DB_NAME, 'test');
$link = mysqli_connect(HOST, USER, PASSWORD, DB_NAME) or die(mysqli_connect_error($link));
mysqli_query($link, "SET NAMES 'utf8'");
$query = "SELECT * FROM workers";
$result = mysqli_query($link, $query) or die(mysqli_error($link));
$num_rows = mysqli_num_rows($result);
mysqli_close($link);
?>
<table cellpadding="5" cellspacing="0" border="1">
<?php   
while ($row = mysqli_fetch_assoc($result) ) {       //Законектились к базе и записываем значения
    $mass[] = $row;                                 // рядков в массив
}
foreach ($mass as $key =>  $value) {                //Все преведенные здесь маннипуляции
    foreach ($value as $skey => $svalue) {          //связаны с заголовками столбцов таблицы оесть с ее ключами.
        $arr[] = $skey;                             //              
        $arr = array_unique($arr);                  // В forech, я ложу все ключи в массив и удаляю дубликаты,
    }                                               // чтобы у меня осались только 4 значения вместо 16.
}                                                   //
echo "<tr>";                                        //Здесь просто вывожу полученый массив ключей.
for ($i=0; $i < count($arr) ; $i++) {               //
    echo "<th>".$arr[$i]."</th>";                   //PS: всё как-то громоздко и криво)) Должен быть 
}                                                   //способ все это улучшить! 
echo "</tr>";                                       //
foreach ($mass as $key => $value) {                 //
    echo "<tr>";                                    // Отрисовуем таблицу значений      
    foreach ($value as $subkey =>  $subvalue) {     //  
        echo "<td>".$subvalue."</td>";
    }
    echo "</tr>";
}
?>
</table>

Результат:

READ ALSO
Переход на другую страницу в yii

Переход на другую страницу в yii

Есть главная страница, которая рендерится в контроллере myПри переходе на другие страницы всё нормально

132