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 |
+-----------------------+------------+
Единственное, что нужно учесть - если таблицы у вас InnoDB, то данные цифры будут более-менее точными, но не совсем. В силу механизмов оптимизации. Так что если нужно "приблизительно" понимать - используйте данный метод. Если нужно с точностью до одной строки - тогда COUNT.
Ну и еще можно сделать
SHOW TABLE STATUS
, находять в выбранной базе данных. Точность подсчета количества строк на InnoDB такая же, как и предыдущем методе, но зато здесь будет еще много полезной информации. Например - avg_row_length, data_length, index_length и другое.