$keys = array_keys($arr);
$head = "<tr><th>year</th>".implode("", array_map(function($n) {
return "<th>$n</th>";
}, $keys))."</tr>";
$rows = implode("", array_map(function($key) use($arr) {
return "<tr><td>$key</td>".implode("", array_map(function($n) use($key) {
return "<td>$n[$key]</td>";
}, $arr))."</tr>";
}, array_keys($arr[$keys[0]])));
echo "<table>$head$rows</table>";
SHOW TABLES FROM database_name
прекрасно работает когда база не выбрана. Здесь мы показываем таблицы в базе, а не в $db_table. Исходя из вашего нейминга, вы просите таблицу показать ее таблицы, что абсурдно само по себе. Обращайтесь к базе. Или, если вы базу предварительно уже выбрали, то достаточно SHOW TABLES
.SELECT * FROM table_name
уже сначала нужно выбрать базу данных (которую вы опрашивали на предмет таблиц в первом запросе), или же обращаться к таблице в формате database_name.table_name. SELECT COUNT(*) FROM database_name.table_name
. SELECT table_name, table_rows
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'your_database_name';
+-----------------------+------------+
| table_name | table_rows |
+-----------------------+------------+
| wp_terms | 10 |
| wp_yoast_seo_meta | 61 |
| wp_yoast_seo_links | 33 |
| wp_commentmeta | 0 |
| wp_term_taxonomy | 10 |
| wp_ewwwio_queue | 352 |
| wp_usermeta | 114 |
| wp_options | 281 |
| wp_users | 5 |
| wp_term_relationships | 49 |
| wp_ewwwio_images | 1048 |
| wp_links | 0 |
| wp_postmeta | 21408 |
| wp_termmeta | 0 |
| wp_comments | 0 |
| wp_posts | 738 |
+-----------------------+------------+
SHOW TABLE STATUS
, находять в выбранной базе данных. Точность подсчета количества строк на InnoDB такая же, как и предыдущем методе, но зато здесь будет еще много полезной информации. Например - avg_row_length, data_length, index_length и другое. Как работает Fastroute?
$d = date('Y.m.d');
// Объектно-ориентированный стиль
$date = DateTime::createFromFormat('Y.m.d', $d);
$date->sub(new DateInterval('P5D'));
echo $date->format('Y-m-d'); // 2019-05-25
// Процедурный стиль
$date = date_create_from_format('Y.m.d', $d);
date_sub($date, date_interval_create_from_date_string('5 days'));
echo date_format($date, 'Y-m-d'); // 2019-05-25
$query = $pdo->query('SELECT * FROM `telephone` ORDER BY `fullname`');
$data = $query->fetchAll(PDO::FETCH_ASSOC));
А потом уже в ХТМЛ выводить из массива<select class="viewing-select">
<?php foreach ($data as $row): ?>
<option value="<?= $row['id'] ?>"><?= $row['fullname'] ?></option>
<?php endforeach ?>
</select>
И если человек захочет узнать полную информацию о человеке, то есть по клике на кнопку, должна открываться полная информация о человеке, то есть где он живет и его номер.
hex2bin(str_replace('\\x', '', $str));
base64_decode
<?php
echo '<style>
table,td,tr{border: 1px green solid; padding : 2px;text-align :center;border-collapse: collapse;}</style>';
$data = [ // при запросе из БД отсортируй по дате
['fio'=>'Kolya', 'date'=>'12.12.19', 'cha'=>'12'],
['fio'=>'Petya', 'date'=>'12.12.19', 'cha'=>'12'],
['fio'=>'Vasya', 'date'=>'12.12.19', 'cha'=>'5'],
['fio'=>'Seroja', 'date'=>'13.12.19','cha'=>'2'],
['fio'=>'Igor', 'date'=>'14.12.19', 'cha'=>'6'],
['fio'=>'Sanya', 'date'=>'14.12.19', 'cha'=>'5'],
['fio'=>'Kolya', 'date'=>'15.12.19', 'cha'=>'6'],
['fio'=>'Kolya', 'date'=>'16.12.19', 'cha'=>'2'],
['fio'=>'Vasya', 'date'=>'17.12.19', 'cha'=>'2'],
['fio'=>'Igor', 'date'=>'18.12.19', 'cha'=>'2'],
['fio'=>'Kolya', 'date'=>'18.12.19', 'cha'=>'2'],
];
$allDates = array_unique(array_column($data,'date'));
echo "<table><tr><td>Name</td><td>".implode('</td><td>',$allDates)."</td></tr>";
foreach(array_unique(array_column($data,'fio')) as $name){
echo "<tr><td>$name</td>";
foreach($allDates as $day){
foreach($data as $i){
if($i['fio']==$name && $i['date']==$day && print("<td>{$i['cha']}</td>"))
continue 2;
}
echo "<td>-</td>";
}
echo "</tr>";
}
echo "</table>";